static void sig_connected(IRC_SERVER_REC *server) { if (!IS_IRC_SERVER(server) || !server->connrec->reconnection) return; if (server->connrec->away_reason != NULL) irc_server_send_away(server, server->connrec->away_reason); }
/* SYNTAX: AWAY [-one | -all] [<reason>] */ static void cmd_away(const char *data, IRC_SERVER_REC *server) { GHashTable *optlist; char *reason; void *free_arg; if (!cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_OPTIONS | PARAM_FLAG_GETREST, "away", &optlist, &reason)) return; if (g_hash_table_lookup(optlist, "one") != NULL) irc_server_send_away(server, reason); else g_slist_foreach(servers, (GFunc) irc_server_send_away, reason); cmd_params_free(free_arg); }