diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/heightScore.c | 1 | ||||
| -rw-r--r-- | src/server/log.c | 67 | ||||
| -rw-r--r-- | src/server/log.h | 15 | ||||
| -rw-r--r-- | src/server/publicServer.c | 21 | ||||
| -rw-r--r-- | src/server/serverConfigFile.c | 9 |
5 files changed, 104 insertions, 9 deletions
diff --git a/src/server/heightScore.c b/src/server/heightScore.c index aebe4f2..e29fad7 100644 --- a/src/server/heightScore.c +++ b/src/server/heightScore.c @@ -25,6 +25,7 @@ void initHeightScore(char *file) } else { + printf("I use %s as scorefile\n", file); return; } diff --git a/src/server/log.c b/src/server/log.c new file mode 100644 index 0000000..cf58e0f --- /dev/null +++ b/src/server/log.c @@ -0,0 +1,67 @@ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <time.h> +#include <assert.h> + +#include "log.h" +#include "main.h" + +static FILE *logFile; + +int initLog(char *name) +{ + logFile = fopen(name, "a"); + + if( logFile == NULL ) + { + printf("open file %s as log file failed !!!\n", name); + return -1; + } + + printf("I use %s as log file\n", name); + + addToLog(LOG_INF, "open log file"); + + return 0; +} + +void addToLog(int type, char *msg) +{ + char str[STR_LOG_SIZE]; + struct tm *tm_struct; + time_t currentTime; + char *str_type; + + currentTime = time(NULL); + tm_struct = localtime(¤tTime); + + switch( type ) + { + case LOG_INF : str_type = "INF"; break; + case LOG_DBG : str_type = "DBG"; break; + case LOG_WRN : str_type = "WRN"; break; + case LOG_ERR : str_type = "ERR"; break; + default : + assert( ! "Bad log type !" ); + break; + } + + sprintf(str, "(%02d-%02d-%02d %02d:%02d:%02d) %s %s\n", + 1900+tm_struct->tm_year, tm_struct->tm_mon, tm_struct->tm_mday, + tm_struct->tm_hour, tm_struct->tm_min, tm_struct->tm_sec, + str_type, msg); + + fprintf(logFile, str); + + fflush(logFile); +} + +void quitLog() +{ + addToLog(LOG_INF, "close log file"); + fclose(logFile); +} + diff --git a/src/server/log.h b/src/server/log.h new file mode 100644 index 0000000..af60911 --- /dev/null +++ b/src/server/log.h @@ -0,0 +1,15 @@ + +#ifndef LOG_H + +#define LOG_H + +#define LOG_INF 1 +#define LOG_DBG 2 +#define LOG_WRN 3 +#define LOG_ERR 4 + +extern int initLog(char *name); +extern void addToLog(int type, char *msg); +extern void quitLog(); + +#endif diff --git a/src/server/publicServer.c b/src/server/publicServer.c index 7d434d7..5b96dea 100644 --- a/src/server/publicServer.c +++ b/src/server/publicServer.c @@ -37,6 +37,7 @@ #include "publicServer.h" #include "serverConfigFile.h" #include "heightScore.h" +#include "log.h" #include "dns.h" @@ -167,7 +168,7 @@ static int registerPublicServer() register_head *head = (register_head *) str; head->cmd = 'p'; - head->port = atoi( getSetting("PORTv4", "--port", "2200") ); + head->port = atoi( getSetting("PORT4", "--port4", "2200") ); head->ip = 0; // TODO /* send request for server list */ @@ -225,8 +226,8 @@ static int initPublicServerNetwork() p_ip6 = NULL; } - port4 = atoi( getSetting("PORTv4", "--port", "2200") ); - port6 = atoi( getSetting("PORTv6", "--port", "2200") ); + port4 = atoi( getSetting("PORT4", "--port4", "2200") ); + port6 = atoi( getSetting("PORT6", "--port6", "2200") ); //ret = initNetMulitplayerPublicServer(p_ip4, port4, p_ip6, port6); @@ -247,7 +248,16 @@ int initPublicServer() initItem(); initShot(); initServerConfigFile(); - initHeightScore( getSetting("SCOREFILE", "--scorefile", "./heightscore") ); + + ret = initLog(getSetting("LOG_FILE", "--log-file", "/tmp/tuxanci-server.log") ); + + if( ret < 0 ) + { + fprintf(stderr, "I down open log file !\n"); + return -1; + } + + initHeightScore( getSetting("SCORE_FILE", "--score-file", "/tmp/heightscore") ); arenaId = getArenaIdFormNetName( getSetting("ARENA", "--arena", "FAGN") ); arena = getArena(arenaId); @@ -268,7 +278,7 @@ int initPublicServer() return -1; } - setServerMaxClients( atoi( getSetting("MAX_CLIENTS", "--maxclients", "32") )); + setServerMaxClients( atoi( getSetting("MAX_CLIENTS", "--max-clients", "32") )); if (registerPublicServer() < 0) { @@ -336,6 +346,7 @@ void quitPublicServer() quitModule(); quitListID(); quitHeightScore(); + quitLog(); exit(0); } diff --git a/src/server/serverConfigFile.c b/src/server/serverConfigFile.c index f50f2a9..31d3db3 100644 --- a/src/server/serverConfigFile.c +++ b/src/server/serverConfigFile.c @@ -32,14 +32,16 @@ static void prepareConfigFile(textFile_t *ts) } } } - } void initServerConfigFile() { - printf("load configuration form %s\n", SERVER_CONFIG); + char *configFile; + + configFile = getParamElse("--config-file", SERVER_CONFIG); + printf("load configuration from %s\n", getParamElse("--config-file", SERVER_CONFIG) ); - serverTextFile = loadTextFile(SERVER_CONFIG); + serverTextFile = loadTextFile(configFile); if( serverTextFile == NULL ) { @@ -48,7 +50,6 @@ void initServerConfigFile() } prepareConfigFile(serverTextFile); - } static char *findValue(char *s) |