/* show a stats request */ static void * show_stats(va_list args) { struct Client *source_p = va_arg(args, struct Client *); int parc = va_arg(args, int); char **parv = va_arg(args, char **); char statchar; if (parc < 2) return NULL; /* shouldn't happen */ statchar = parv[1][0]; if (statchar == 'L' || statchar == 'l') { if (parc > 2 && *parv[2]) sendto_realops_flags(UMODE_SPY, L_ALL, "STATS %c requested by %s (%s@%s) [%s] on %s", statchar, source_p->name, source_p->username, source_p->host, source_p->servptr->name, parv[2]); else sendto_realops_flags(UMODE_SPY, L_ALL, "STATS %c requested by %s (%s@%s) [%s]", statchar, source_p->name, source_p->username, source_p->host, source_p->servptr->name); } else if (statchar != 'p') sendto_realops_flags(UMODE_SPY, L_ALL, "STATS %c requested by %s (%s@%s) [%s]", statchar, source_p->name, source_p->username, source_p->host, source_p->servptr->name); return pass_callback(prev_hook, source_p, parc, parv); }
/* * Associates a window message with the given socket. * This will automagically switch it to nonblocking. */ static void * setup_winsock_fd(va_list args) { int fd = va_arg(args, int); WSAAsyncSelect(fd, wndhandle, WM_SOCKET, 0); return pass_callback(setupfd_hook, fd); }
/* * changing_fdlimit * * Make sure hard_fdlimit doesn't go too big. */ static void * changing_fdlimit(va_list args) { int fdmax = va_arg(args, int); if (fdmax > FD_SETSIZE) fdmax = FD_SETSIZE; return pass_callback(hookptr, fdmax); }
/* * verify_mail() * * Checks if required settings are defined. * * inputs: none * output: none */ static void * verify_mail(va_list args) { if (EmptyString(Mail.command)) parse_fatal("command= field missing in mail{} section"); if (EmptyString(Mail.from_address)) parse_fatal("from_address= field missing in mail{} section"); return pass_callback(hverify); }
static void * show_info(va_list args) { struct Client *source_p = va_arg(args, struct Client *); int parc = va_arg(args, int); char **parv = va_arg(args, char **); if (IsClient(source_p)) sendto_gnotice_flags(UMODE_SPY, L_ALL, me.name, &me, NULL, "info requested by %s (%s@%s) [%s]", source_p->name, source_p->username, source_p->host, source_p->servptr->name); return pass_callback(prev_hook, source_p, parc, parv); }
static void * show_stats_p(va_list args) { struct Client *source_p = va_arg(args, struct Client *); int parc = va_arg(args, int); char **parv = va_arg(args, char **); if (parc < 2) return NULL; /* shouldn't happen */ if (parv[1][0] == 'p') sendto_realops_flags(UMODE_SPY, L_ALL, "STATS p requested by %s (%s@%s) [%s]", source_p->name, source_p->username, source_p->host, source_p->servptr->name); return pass_callback(prev_hook, source_p, parc, parv); }
/* * reset_mail() * * Sets up default values before a rehash. * * inputs: none * output: none */ static void * reset_mail(va_list args) { return pass_callback(hreset); }