static int ModuleVersion( Module *module_ptr, void *v ) { irc_numeric( RPL_VERSION, (char *)v, _( "Module %s version: %s %s %s" ), module_ptr->info->name, module_ptr->info->version, module_ptr->info->build_date, module_ptr->info->build_time ); return NS_FALSE; }
static void privmsg_invalid(char *name, void *data) { struct privmsg_desc *pd = data; if (*name == '$') return; irc_numeric(pd->user, ERR_NOSUCHNICK, "%s@%s :No such nick", name, self->name); }
static CMD_FUNC(cmd_version) { struct userNode *user; if (!(user = GetUserH(origin))) { log_module(MAIN_LOG, LOG_ERROR, "Could not find VERSION origin user %s", origin); return 0; } irc_numeric(user, 351, "%s %s+[%s] %s", PACKAGE_TARNAME, PACKAGE_VERSION, cvs_version, self->name); return 1; }
static CMD_FUNC(cmd_admin) { struct userNode *user; struct string_list *slist; if (!(user = GetUserH(origin))) { log_module(MAIN_LOG, LOG_ERROR, "Could not find ADMIN origin user %s", origin); return 0; } if ((slist = conf_get_data("server/admin", RECDB_STRING_LIST)) && slist->used) { unsigned int i; irc_numeric(user, 256, ":Administrative info about %s", self->name); for (i = 0; i < slist->used && i < 3; i++) irc_numeric(user, 257 + i, ":%s", slist->list[i]); } else { irc_numeric(user, 423, ":No administrative info available"); } return 1; }
static CMD_FUNC(cmd_stats) { struct userNode *un; if (argc < 2) return 0; if (!(un = GetUserH(origin))) return 0; switch (argv[1][0]) { case 'u': { unsigned int uptime = now - boot_time; irc_numeric(un, RPL_STATSUPTIME, ":Server Up %d days %d:%02d:%02d", uptime/(24*60*60), (uptime/(60*60))%24, (uptime/60)%60, uptime%60); irc_numeric(un, RPL_MAXCONNECTIONS, ":Highest connection count: %d (%d clients)", self->max_clients+1, self->max_clients); break; } default: /* unrecognized/unhandled stats output */ break; } irc_numeric(un, 219, "%s :End of /STATS report", argv[1]); return 1; }