#include "../lib/base64.h"
#include "../core/modules.h"
#include "../lib/version.h"
-#include "../core/nsmalloc.h"
#include "control.h"
#include <stdio.h>
int controlstatus(void *sender, int cargc, char **cargv) {
unsigned long level=5;
- char buf[1024];
hooknick=(nick *)sender;
if (cargc>0) {
registerhook(HOOK_CORE_STATSREPLY,&handlestats);
- if (level >= 50) {
- int i;
- unsigned long count;
- size_t size, realsize;
- char *poolname;
-
- for(i=0;;i++) {
- if(!nspoolstats(i, &size, &count, &poolname, &realsize))
- break;
-
- if (count == 0)
- continue;
-
- snprintf(buf, sizeof(buf), "NSMalloc: pool %2d (%s): %lu items, %luKb allocated for %luKb space, %luKb (%0.2f%%) overhead", i, poolname?poolname:"??", count, (unsigned long)size / 1024, (unsigned long)realsize / 1024, (unsigned long)(realsize - size) / 1024, (double)(realsize - size) / (double)size * 100);
- triggerhook(HOOK_CORE_STATSREPLY, buf);
- }
- }
-
triggerhook(HOOK_CORE_STATSREQUEST,(void *)level);
deregisterhook(HOOK_CORE_STATSREPLY,&handlestats);
return CMD_OK;
controlreply((nick *)sender,"AccountTS : %ld",target->accountts);
if (target->auth)
controlreply((nick *)sender,"UserID : %ld",target->auth->userid);
+ if (target->accountflags)
+ controlreply((nick *)sender,"AccFlags : %s",printflags(target->accountflags,accountflags));
}
hooknick=(nick *)sender;
return CMD_USAGE;
}
- controlwall(0,0,"DIE from %s: %s",((nick *)sender)->nick, cargv[0]);
+ controlwall(NO_OPER,NL_OPERATIONS,"DIE from %s: %s",((nick *)sender)->nick, cargv[0]);
newserv_shutdown_pending=1;
controlnotice(np, "%s", broadcast);
}
+void controlnswall(int noticelevel, char *format, ...) {
+ char broadcast[512];
+ va_list va;
+
+ va_start(va, format);
+ vsnprintf(broadcast, sizeof(broadcast), format, va);
+ va_end(va);
+
+ controlwall(NO_OPER, noticelevel, "%s", broadcast);
+}
+