#include "../lib/base64.h"
#include "../lib/splitline.h"
#include "../lib/version.h"
+#include "../lib/irc_string.h"
#include <sys/poll.h>
#include <sys/types.h>
#include <sys/socket.h>
#define MAX_NUMERIC 999
void irc_connect(void *arg);
+void ircstats(int hooknum, void *arg);
CommandTree *servercommands;
Command *numericcommands[MAX_NUMERIC-MIN_NUMERIC];
registerserverhandler("SE",&handlesettime,1);
registerserverhandler("Z",&handlepingreply,1);
registerserverhandler("SERVER",&irc_handleserver,8);
+
+ registerhook(HOOK_CORE_STATSREQUEST,&ircstats);
}
void _fini() {
deregisterserverhandler("SE",&handlesettime);
deregisterserverhandler("Z",&handlepingreply);
deregisterserverhandler("SERVER",&irc_handleserver);
+
+ deregisterhook(HOOK_CORE_STATSREQUEST,&ircstats);
deleteschedule(NULL,&sendping,NULL);
deleteschedule(NULL,&irc_connect,NULL);
awaitingping=0;
return CMD_OK;
}
+
+
+void ircstats(int hooknum, void *arg) {
+ long level=(long)arg;
+ char buf[100];
+
+ if (level>5) {
+ sprintf(buf,"irc : start time %lu (running %s)", starttime,longtoduration(time(NULL)-starttime,0));
+ triggerhook(HOOK_CORE_STATSREPLY,buf);
+ sprintf(buf,"Time : %lu (current time is %lu, offset %ld)",getnettime(),time(NULL),timeoffset);
+ triggerhook(HOOK_CORE_STATSREPLY,buf);
+ }
+}