From: Vsevolod Stakhov Date: Tue, 23 Jul 2013 14:17:31 +0000 (+0100) Subject: Fix a problem with listening on sockets. X-Git-Tag: 0.6.0~261 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2c8ed95980462b03fb3ca0ae7721357952d7361b;p=thirdparty%2Frspamd.git Fix a problem with listening on sockets. Add stat_reset command to rspamc while I'm here. --- diff --git a/src/client/rspamc.c b/src/client/rspamc.c index 1819d7e9c9..9279682e49 100644 --- a/src/client/rspamc.c +++ b/src/client/rspamc.c @@ -75,6 +75,7 @@ enum rspamc_command { RSPAMC_COMMAND_FUZZY_ADD, RSPAMC_COMMAND_FUZZY_DEL, RSPAMC_COMMAND_STAT, + RSPAMC_COMMAND_STAT_RESET, RSPAMC_COMMAND_COUNTERS, RSPAMC_COMMAND_UPTIME, RSPAMC_COMMAND_ADD_SYMBOL, @@ -131,6 +132,9 @@ check_rspamc_command (const gchar *cmd) else if (g_ascii_strcasecmp (cmd, "STAT") == 0) { return RSPAMC_COMMAND_STAT; } + else if (g_ascii_strcasecmp (cmd, "STAT_RESET") == 0) { + return RSPAMC_COMMAND_STAT_RESET; + } else if (g_ascii_strcasecmp (cmd, "COUNTERS") == 0) { return RSPAMC_COMMAND_COUNTERS; } @@ -849,6 +853,9 @@ main (gint argc, gchar **argv, gchar **env) case RSPAMC_COMMAND_STAT: rspamc_do_controller_simple_command ("stat", NULL); break; + case RSPAMC_COMMAND_STAT_RESET: + rspamc_do_controller_simple_command ("stat_reset", NULL); + break; case RSPAMC_COMMAND_COUNTERS: show_rspamd_counters (); break; diff --git a/src/util.c b/src/util.c index 4936b37dcd..ce95e6c9ee 100644 --- a/src/util.c +++ b/src/util.c @@ -152,6 +152,8 @@ make_inet_socket (gint type, struct addrinfo *addr, gboolean is_server, gboolean } else if (fd != -1) { *list = g_list_prepend (*list, GINT_TO_POINTER (fd)); + cur = cur->ai_next; + continue; } out: if (fd != -1) { @@ -470,6 +472,7 @@ err: if (fd != -1) { close (fd); } + rcur = g_list_next (rcur); } if (result != NULL) { g_list_free (result);