summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authororoborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-08-03 14:17:06 +0000
committeroroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-08-03 14:17:06 +0000
commit00c9cebac684c42741e924d11038d5591e87dacd (patch)
treea2056cbbf8ae0512ff15e9eb8868ceab29877073 /src/server
parent1a592767c6e34bdeb7f30fa063b5e24c57d45894 (diff)
- trochu rozsirena konfiguracvia, viz http://www.tuxanci.org/server/howto
- moznost logovat so suboru git-svn-id: http://opensvn.csie.org/tuxanci_ng@188 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
Diffstat (limited to 'src/server')
-rw-r--r--src/server/heightScore.c1
-rw-r--r--src/server/log.c67
-rw-r--r--src/server/log.h15
-rw-r--r--src/server/publicServer.c21
-rw-r--r--src/server/serverConfigFile.c9
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(&currentTime);
+
+ 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)