Central Moderation

git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4800 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
Rafael Barreto
2010-05-03 01:38:26 +00:00
parent 86c44aad84
commit 6472d510d2
6 changed files with 369 additions and 10 deletions
+13 -7
View File
@@ -1,6 +1,7 @@
// all server side masterserver and pinging functionality
#include "cube.h"
#include "cmodserver.h"
#ifdef STANDALONE
bool resolverwait(const char *name, ENetAddress *address)
@@ -78,17 +79,21 @@ string masterpath;
uchar masterrep[MAXTRANS];
ENetBuffer masterb;
extern int updatecmod(int millis, int type);
// send alive signal to masterserver every hour of uptime
void updatemasterserver(int millis, const ENetAddress &localaddr)
{
if(!millis || millis/(60*60*1000)!=lastupdatemaster)
if( !millis || millis/(60*60*1000)!=lastupdatemaster )
{
defformatstring(path)("%sregister.do?action=add&port=%d", masterpath, localaddr.port);
defformatstring(agent)("AssaultCube Server %d", AC_VERSION);
mssock = httpgetsend(masterserver, masterbase, path, "assaultcubeserver", agent, &msaddress);
masterrep[0] = 0;
masterb.data = masterrep;
masterb.dataLength = MAXTRANS-1;
if ( updatecmod(millis, UT_SERVER) ){
defformatstring(path)("%sregister.do?action=add&port=%d", masterpath, localaddr.port);
defformatstring(agent)("AssaultCube Server %d", AC_VERSION);
mssock = httpgetsend(masterserver, masterbase, path, "assaultcubeserver", agent, &msaddress);
masterrep[0] = 0;
masterb.data = masterrep;
masterb.dataLength = MAXTRANS-1;
}
lastupdatemaster = millis/(60*60*1000);
}
}
@@ -294,6 +299,7 @@ void serverms(int mode, int numplayers, int minremain, char *smapname, int milli
}
}
// this function should be made better, because it is used just ONCE (no need of so much parameters)
void servermsinit(const char *master, const char *ip, int infoport, bool listen)
{
const char *mid = strstr(master, "/");