daily work
This commit is contained in:
parent
ba91546d88
commit
b4478bbc1e
|
@ -0,0 +1,4 @@
|
||||||
|
*.o
|
||||||
|
*.d
|
||||||
|
hlswmaster
|
||||||
|
hlswmaster.log
|
23
config.cpp
23
config.cpp
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue