]> jfr.im git - irc/quakenet/newserv.git/blobdiff - server/server.c
Merge chanserv-live into default.
[irc/quakenet/newserv.git] / server / server.c
index 6cc8809b330753907a5546612fe3ad8576121b94..9ba31e114748d39585a9d7cb87ef912caf3b29b6 100644 (file)
@@ -42,6 +42,7 @@ void _init() {
   serverlist[numerictolong(mynumeric->content,2)].name=getsstring(myserver->content,HOSTLEN);
   serverlist[numerictolong(mynumeric->content,2)].description=getcopyconfigitem("irc","serverdescription","newserv",100);
   serverlist[numerictolong(mynumeric->content,2)].maxusernum=MAXLOCALUSER;
+  serverlist[numerictolong(mynumeric->content,2)].ts=getnettime();
   serverlist[numerictolong(mynumeric->content,2)].linkstate=LS_LINKED;
   /* remember to update the mode line in irc/irc.c */
   serverlist[numerictolong(mynumeric->content,2)].flags=SMODE_SERVICE|SMODE_IPV6|SMODE_HUB|SMODE_OPERNAME;
@@ -85,6 +86,8 @@ int handleservermsg(void *source, int cargc, char **cargv) {
   serverlist[servernum].name=getsstring(cargv[0],HOSTLEN);
   serverlist[servernum].description=getsstring(cargv[cargc-1],REALLEN);
   serverlist[servernum].maxusernum=numerictolong(cargv[5]+2,3);
+  serverlist[servernum].ts=strtoull(cargv[3], NULL, 10);
+  serverlist[servernum].marker=0;
   setflags(&serverlist[servernum].flags,SMODE_ALL,cargv[6],smodeflags,REJECT_NONE);
 
   if (!strncmp((char *)source,"INIT",4)) {
@@ -137,7 +140,7 @@ int handlesquitmsg(void *source, int cargc, char **cargv) {
   }
   if (servernum==myhub) {
     Error("server",ERR_WARNING,"Rejected by our hub: %s",cargv[cargc-1]);
-    irc_disconnected();
+    irc_disconnected(0);
     return CMD_OK;
   }
   deleteserver(servernum);
@@ -212,3 +215,18 @@ int findserver(const char *name) {
   return -1;
 }
 
+unsigned int nextservermarker(void) {
+  int i;
+  static unsigned int servermarker=0;
+
+  servermarker++;
+  if (!servermarker) {
+    /* If we wrapped to zero, zap the marker on all hosts */
+    for (i=0;i<MAXSERVERS;i++)
+      serverlist[i].marker=0;
+    servermarker++;
+  }
+
+  return servermarker;
+}
+