X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/ff99b5c0abab99c8aa28afc5c4dfcd4ee948198c..719d21bb856223e9ce264ced3ee1d179790e6131:/splitlist/splitlist.c diff --git a/splitlist/splitlist.c b/splitlist/splitlist.c index 6597bc93..4789a0ea 100644 --- a/splitlist/splitlist.c +++ b/splitlist/splitlist.c @@ -10,8 +10,8 @@ MODULE_VERSION(""); array splitlist; -void sphook_newserver(int hook, void *arg); -void sphook_lostserver(int hook, void *arg); +static void sphook_newserver(int hook, void *arg); +static void sphook_lostserver(int hook, void *arg); void _init(void) { registerhook(HOOK_SERVER_NEWSERVER, &sphook_newserver); @@ -21,7 +21,7 @@ void _init(void) { array_setlim1(&splitlist, 5); array_setlim2(&splitlist, 5); - sp_addsplit("default.split.quakenet.org", getnettime()); + sp_addsplit("default.split.quakenet.org", getnettime(), SERVERTYPEFLAG_CRITICAL_SERVICE | SERVERTYPEFLAG_SERVICE); } void _fini(void) { @@ -37,27 +37,24 @@ void _fini(void) { array_free(&splitlist); } -void sphook_newserver(int hook, void *arg) { - sp_deletesplit(serverlist[(int)arg].name->content); +static void sphook_newserver(int hook, void *arg) { + sp_deletesplit(serverlist[(long)arg].name->content); } -void sphook_lostserver(int hook, void *arg) { - sp_addsplit(serverlist[(int)arg].name->content, getnettime()); +static void sphook_lostserver(int hook, void *arg) { + server *server = &serverlist[(long)arg]; + sp_addsplit(server->name->content, getnettime(), getservertype(server)); } -int sp_countsplitservers(void) { - return splitlist.cursi; -} - -int sp_issplitserver(const char *name) { +int sp_countsplitservers(flag_t orflags) { + int result = 0; int i; - for (i = 0; i < splitlist.cursi; i++) { - if (strcmp(name, ((splitserver*)splitlist.content)[i].name->content) == 0) - return 1; - } + for (i = 0; i < splitlist.cursi; i++) + if((((splitserver*)splitlist.content)[i].type | orflags) != 0) + result++; - return 0; + return result; } void sp_deletesplit(const char *name) { @@ -74,7 +71,7 @@ void sp_deletesplit(const char *name) { } } -void sp_addsplit(const char *name, time_t ts) { +void sp_addsplit(const char *name, time_t ts, flag_t type) { int slot; splitserver *srv; @@ -84,4 +81,5 @@ void sp_addsplit(const char *name, time_t ts) { srv->name = getsstring(name, HOSTLEN); srv->ts = ts; + srv->type = type; }