daily work

This commit is contained in:
Olaf Rempel 2006-02-05 12:00:47 +01:00 committed by
parent ba91546d88
commit b4478bbc1e
11 changed files with 41 additions and 34 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
*.o
*.d
hlswmaster
hlswmaster.log

View File

@ -5,6 +5,8 @@
#include "config.h" #include "config.h"
#include "logging.h" #include "logging.h"
#define BUFSIZE 1024
/* ------ */ /* ------ */
Config::Tupel::Tupel(const char* name_, const char* value_) Config::Tupel::Tupel(const char* name_, const char* value_)
@ -48,11 +50,11 @@ bool Config::Section::addTupel(const char* name, const char* value)
void Config::Section::show() const void Config::Section::show() const
{ {
Iterator<Tupel>* it = tupelList.createIterator(); Iterator<Tupel>* it = tupelList.createIterator();
LogSystem::log(LOG_DEBUG, "[%s]", name); LogSystem::log(LOG_INFO, "[%s]", name);
while (it->hasNext()) { while (it->hasNext()) {
Tupel* t = it->next(); Tupel* t = it->next();
LogSystem::log(LOG_DEBUG, " %s = %s", t->name, t->value); LogSystem::log(LOG_INFO, " %s = %s", t->name, t->value);
} }
delete it; delete it;
@ -97,8 +99,9 @@ bool Config::parseFile(const char* name)
char *row, *tok, *tok2; char *row, *tok, *tok2;
bool ret = true; bool ret = true;
if (!(row = (char*)malloc(1024))) { row = new char[BUFSIZE];
LogSystem::log(LOG_CRIT, "config_parse(): malloc()"); if (!row) {
LogSystem::log(LOG_ERROR, "config_parse(): out of memory()");
return false; return false;
} }
@ -107,7 +110,7 @@ bool Config::parseFile(const char* name)
return false; return false;
} }
while (fgets(row, 1024, fz)) { while (fgets(row, BUFSIZE, fz)) {
i++; i++;
/* kommentar oder leere zeile */ /* kommentar oder leere zeile */
@ -119,7 +122,7 @@ bool Config::parseFile(const char* name)
tok = strtok(row +1, " ]\n"); tok = strtok(row +1, " ]\n");
section = addSection(tok); section = addSection(tok);
if (!section) { if (!section) {
LogSystem::log(LOG_WARNING, "config_parse(): invalid section in row %d", i); LogSystem::log(LOG_WARN, "config_parse(): invalid section in row %d", i);
ret = false; ret = false;
break; break;
} }
@ -127,7 +130,7 @@ bool Config::parseFile(const char* name)
/* option, aber es gab noch keine section */ /* option, aber es gab noch keine section */
} else if (!section) { } else if (!section) {
LogSystem::log(LOG_WARNING, "config_parse(): missing section in row %d", i); LogSystem::log(LOG_WARN, "config_parse(): missing section in row %d", i);
ret = false; ret = false;
break; break;
} }
@ -135,19 +138,19 @@ bool Config::parseFile(const char* name)
/* option */ /* option */
if ((tok = strtok(row, " \n")) && (tok2 = strtok(NULL, " \n"))) { if ((tok = strtok(row, " \n")) && (tok2 = strtok(NULL, " \n"))) {
if (!section->addTupel(tok, tok2)) if (!section->addTupel(tok, tok2))
LogSystem::log(LOG_WARNING, "config_parse(): invalid row %d", i); LogSystem::log(LOG_WARN, "config_parse(): invalid row %d", i);
} }
} }
fclose(fz); fclose(fz);
free(row); delete row;
return ret; return ret;
} }
void Config::show() const void Config::show() const
{ {
LogSystem::log(LOG_DEBUG, "Config Dump:"); LogSystem::log(LOG_INFO, "Config Dump:");
Iterator<Section>* it = sectionList.createIterator(); Iterator<Section>* it = sectionList.createIterator();
while (it->hasNext()) while (it->hasNext())
it->next()->show(); it->next()->show();

View File

@ -24,7 +24,7 @@ int GameParser::execute(void* arg)
case PKT_REJECT: case PKT_REJECT:
char buf[64]; char buf[64];
pkt->show(buf, sizeof(buf)); pkt->show(buf, sizeof(buf));
LogSystem::log(LOG_DEBUG, "unknown Packet: %s", buf); LogSystem::log(LOG_NOTICE, "unknown Packet: %s", buf);
case PKT_ACCEPT: case PKT_ACCEPT:
delete pkt; delete pkt;

View File

@ -27,7 +27,7 @@ GameScanner::~GameScanner()
int GameScanner::execute(void* arg) int GameScanner::execute(void* arg)
{ {
while (1) { while (1) {
int fd = msock->getRecvSocket(); int fd = msock->waitOnSocket();
NetPkt* pkt = NetPkt::createFromSocket(fd); NetPkt* pkt = NetPkt::createFromSocket(fd);
if (pkt != NULL) { if (pkt != NULL) {

View File

@ -15,6 +15,7 @@
#define DEFAULT_CONFIG "hlswmaster.conf" #define DEFAULT_CONFIG "hlswmaster.conf"
#define DEFAULT_LOGFILE "hlswmaster.log" #define DEFAULT_LOGFILE "hlswmaster.log"
#define DEFAULT_LOGPRIO LOG_WARN
static struct option opts[] = { static struct option opts[] = {
{"config", 1, 0, 'c'}, {"config", 1, 0, 'c'},
@ -25,7 +26,7 @@ static struct option opts[] = {
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
LogSystem::init(LOG_DEBUG, new StdErrLog()); LogSystem::init(DEFAULT_LOGPRIO, new StdErrLog());
int arg = 0, code = 0, debug = 0; int arg = 0, code = 0, debug = 0;
char *configfile = DEFAULT_CONFIG; char *configfile = DEFAULT_CONFIG;
@ -64,8 +65,9 @@ int main(int argc, char *argv[])
conf.parseFile(configfile); conf.parseFile(configfile);
// char* logfile = conf.getString("global", "logfile", DEFAULT_LOGFILE); // char* logfile = conf.getString("global", "logfile", DEFAULT_LOGFILE);
// int logprio = conf.getInteger("global", "logprio", LOG_NOTICE); // int logprio = conf.getInteger("global", "logprio", DEFAULT_LOGPRIO);
// LogSystem::init(logprio, new FileLog(logfile)); // LogSystem::init(logprio, new FileLog(logfile));
LogSystem::init(LOG_DEBUG, new StdErrLog());
LogSystem::log(LOG_EVERYTIME, "hlswmaster-ng startup"); LogSystem::log(LOG_EVERYTIME, "hlswmaster-ng startup");
// conf.show(); // conf.show();

View File

@ -31,7 +31,7 @@ HlswServer::HlswServer(Config& conf, GameList& slist)
inet_aton(ip, &dst.sin_addr); inet_aton(ip, &dst.sin_addr);
if (bind(sock, (struct sockaddr *)&dst, sizeof(dst)) < 0) { if (bind(sock, (struct sockaddr *)&dst, sizeof(dst)) < 0) {
LogSystem::log(LOG_WARNING, "HlswServer(): bind()"); LogSystem::log(LOG_ERROR, "HlswServer(): bind()");
return; return;
} }
@ -55,13 +55,13 @@ int HlswServer::execute(void* arg)
len = sizeof(src); len = sizeof(src);
ret = recvfrom(sock, buf, sizeof(buf), 0, (struct sockaddr *)&src, &len); ret = recvfrom(sock, buf, sizeof(buf), 0, (struct sockaddr *)&src, &len);
if (ret != HLSW_HEADER_LEN) { if (ret != HLSW_HEADER_LEN) {
LogSystem::log(LOG_WARNING, "HlswServer: invalid packet"); LogSystem::log(LOG_NOTICE, "HlswServer: invalid packet");
continue; continue;
} }
/* testen ob es sich um ein HLSW anforderung handelt */ /* testen ob es sich um ein HLSW anforderung handelt */
if (memcmp(buf, HLSW_HEADER, HLSW_HEADER_LEN)) { if (memcmp(buf, HLSW_HEADER, HLSW_HEADER_LEN)) {
LogSystem::log(LOG_WARNING, "HlswServer: not a hlsw packet"); LogSystem::log(LOG_NOTICE, "HlswServer: not a hlsw packet");
continue; continue;
} }

View File

@ -9,7 +9,7 @@
// normal "debug" (config, recv. packets) // normal "debug" (config, recv. packets)
#define LOG_INFO 4 #define LOG_INFO 4
// interesting stuff // interesting stuff (unknown packets)
#define LOG_NOTICE 3 #define LOG_NOTICE 3
// something is not right, but programm is still working (config errors) // something is not right, but programm is still working (config errors)

View File

@ -13,7 +13,7 @@ ModuleList::~ModuleList()
void ModuleList::reg(Module* mod) void ModuleList::reg(Module* mod)
{ {
LogSystem::log(LOG_INFO, "Loading Module '%s'", mod->getName()); LogSystem::log(LOG_NOTICE, "Loading Module '%s'", mod->getName());
mlist.addTail(mod); mlist.addTail(mod);
} }

View File

@ -36,7 +36,7 @@ bool MultiSock::Socket::bindToDevice(const char* name)
int ret = setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, devname, sizeof(devname)); int ret = setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, devname, sizeof(devname));
if (ret < 0) { if (ret < 0) {
LogSystem::log(LOG_WARNING, "Socket: setsockopt(SO_BINDTODEVICE) %s", devname); LogSystem::log(LOG_NOTICE, "Socket: setsockopt(SO_BINDTODEVICE) %s", devname);
return false; return false;
} }
@ -50,7 +50,7 @@ bool MultiSock::Socket::bindToPort(int port)
strncpy(ifr.ifr_name, devname, sizeof(ifr.ifr_name)); strncpy(ifr.ifr_name, devname, sizeof(ifr.ifr_name));
if (ioctl(fd, SIOCGIFADDR, &ifr) != 0) { if (ioctl(fd, SIOCGIFADDR, &ifr) != 0) {
LogSystem::log(LOG_WARNING, "Socket: ioctl(SIOCGIFADDR) %s", devname); LogSystem::log(LOG_WARN, "Socket: ioctl(SIOCGIFADDR) %s", devname);
return false; return false;
} }
@ -58,13 +58,13 @@ bool MultiSock::Socket::bindToPort(int port)
addr.sin_port = htons(port); addr.sin_port = htons(port);
if (bind(fd, (struct sockaddr*)&addr, sizeof(addr)) < 0) { if (bind(fd, (struct sockaddr*)&addr, sizeof(addr)) < 0) {
LogSystem::log(LOG_WARNING, "Socket: bind() %s", devname); LogSystem::log(LOG_WARN, "Socket: bind() %s", devname);
return false; return false;
} }
int bcast = 1; int bcast = 1;
if (setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &bcast, sizeof(bcast))) { if (setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &bcast, sizeof(bcast))) {
LogSystem::log(LOG_WARNING, "Socket: setsockopt(SO_BROADCAST) %s", devname); LogSystem::log(LOG_WARN, "Socket: setsockopt(SO_BROADCAST) %s", devname);
return false; return false;
} }
@ -91,7 +91,7 @@ MultiSock::Socket* MultiSock::Socket::createSocket(const char* name, int port)
strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
if (ioctl(sock->fd, SIOCGIFFLAGS, &ifr) != 0) { if (ioctl(sock->fd, SIOCGIFFLAGS, &ifr) != 0) {
LogSystem::log(LOG_WARNING, "Socket: ioctl(SIOCGIFFLAGS) %s", name); LogSystem::log(LOG_WARN, "Socket: ioctl(SIOCGIFFLAGS) %s", name);
delete sock; delete sock;
return NULL; return NULL;
} }
@ -114,7 +114,7 @@ MultiSock::Socket* MultiSock::Socket::createSocket(const char* name, int port)
MultiSock::MultiSock(Config& conf) MultiSock::MultiSock(Config& conf)
{ {
char* buf = (char*)malloc(BUFSIZE); char* buf = new char [BUFSIZE];
if (buf == NULL) { if (buf == NULL) {
LogSystem::log(LOG_CRIT, "MultiSock(): out of memory"); LogSystem::log(LOG_CRIT, "MultiSock(): out of memory");
return; return;
@ -150,7 +150,7 @@ MultiSock::MultiSock(Config& conf)
} }
fclose(fp); fclose(fp);
free(buf); delete buf;
} }
MultiSock::~MultiSock() MultiSock::~MultiSock()
@ -160,7 +160,7 @@ MultiSock::~MultiSock()
} }
int MultiSock::getRecvSocket() int MultiSock::waitOnSocket()
{ {
fd_set fdcpy; fd_set fdcpy;
@ -179,7 +179,7 @@ int MultiSock::getRecvSocket()
} }
delete it; delete it;
LogSystem::log(LOG_ERROR, "getRecvSocket(): select()"); LogSystem::log(LOG_WARN, "getRecvSocket(): select()");
} }
return -1; return -1;

View File

@ -13,7 +13,7 @@ public:
~MultiSock(); ~MultiSock();
int send(struct in_addr *dstip, int dport, char* data, int size); int send(struct in_addr *dstip, int dport, char* data, int size);
int getRecvSocket(); int waitOnSocket();
protected: protected:
MultiSock(const MultiSock& x); MultiSock(const MultiSock& x);

View File

@ -15,14 +15,12 @@
NetPkt::NetPkt(int size) NetPkt::NetPkt(int size)
:size(size) :size(size)
{ {
LogSystem::log(LOG_DEBUG, "NetPkt()"); data = new char[size];
data = (char*)malloc(size);
} }
NetPkt::~NetPkt() NetPkt::~NetPkt()
{ {
free(data); delete data;
LogSystem::log(LOG_DEBUG, "~NetPkt()");
} }
int NetPkt::readFromSocket(int fd) int NetPkt::readFromSocket(int fd)
@ -44,7 +42,7 @@ NetPkt* NetPkt::createFromSocket(int fd)
int recvsize = 0; int recvsize = 0;
if (ioctl(fd, FIONREAD, &recvsize) == -1) { if (ioctl(fd, FIONREAD, &recvsize) == -1) {
LogSystem::log(LOG_WARNING, "NetPkt::createFromSocket()"); LogSystem::log(LOG_ERROR, "NetPkt::createFromSocket()");
return NULL; return NULL;
} }