]> source.dussan.org Git - rspamd.git/commitdiff
* Fix descriptors leakage in controller
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Wed, 19 Aug 2009 13:56:47 +0000 (17:56 +0400)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Wed, 19 Aug 2009 13:56:47 +0000 (17:56 +0400)
src/controller.c

index 30daa26fc0f497f66e969859d7d8c611fc3f5d6a..d7917508a49856fec7b346afc5084056b17cb389 100644 (file)
@@ -141,6 +141,8 @@ free_session (struct controller_session *session, gboolean is_soft)
                rspamd_remove_dispatcher (session->dispatcher);
        }
 
+       close (session->sock);
+
        memory_pool_delete (session->session_pool);
        g_free (session);
 }
@@ -524,9 +526,7 @@ controller_write_socket (void *arg)
        struct controller_session *session = (struct controller_session *)arg;
        
        if (session->state == STATE_QUIT) {
-               msg_info ("closing control connection");
                /* Free buffers */
-               close (session->sock);
                free_session (session, TRUE);
                return;
        }
@@ -541,10 +541,7 @@ controller_err_socket (GError *err, void *arg)
 {
        struct controller_session *session = (struct controller_session *)arg;
 
-       if (err->code == EOF) {
-               msg_info ("controller_err_socket: client closed control connection");
-       }
-       else {
+       if (err->code != EOF) {
                msg_info ("controller_err_socket: abnormally closing control connection, error: %s", err->message);
        }
        /* Free buffers */