/* SYNTAX: SERVER REMOVE <address> [<port>] [<network>] */ static void cmd_server_remove(const char *data) { SERVER_SETUP_REC *rec; char *addr, *port, *chatnet; void *free_arg; if (!cmd_get_params(data, &free_arg, 3, &addr, &port, &chatnet)) return; if (*addr == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); if (*port == '\0') { if (*chatnet == '\0') rec = server_setup_find(addr, -1, NULL); else rec = server_setup_find(addr, -1, chatnet); } else { if (*chatnet == '\0') rec = server_setup_find(addr, atoi(port), NULL); else rec = server_setup_find(addr, atoi(port), chatnet); } if (rec == NULL) printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_SETUPSERVER_NOT_FOUND, addr, port); else { server_setup_remove(rec); printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_SETUPSERVER_REMOVED, addr, port); } cmd_params_free(free_arg); }
void server_setup_remove_chatnet(const char *chatnet) { GSList *tmp, *next; g_return_if_fail(chatnet != NULL); for (tmp = setupservers; tmp != NULL; tmp = next) { SERVER_SETUP_REC *rec = tmp->data; next = tmp->next; if (g_ascii_strcasecmp(rec->chatnet, chatnet) == 0) server_setup_remove(rec); } }
/* SYNTAX: SERVER REMOVE <address> [<port>] */ static void cmd_server_remove(const char *data) { SERVER_SETUP_REC *rec; char *addr, *portstr; void *free_arg; int port; if (!cmd_get_params(data, &free_arg, 2, &addr, &portstr)) return; if (*addr == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS); port = *portstr == '\0' ? -1 : atoi(portstr); rec = server_setup_find_port(addr, port); if (rec == NULL) printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, IRCTXT_SETUPSERVER_NOT_FOUND, addr, port); else { server_setup_remove(rec); printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, IRCTXT_SETUPSERVER_REMOVED, addr, port); } cmd_params_free(free_arg); }