]> source.dussan.org Git - rspamd.git/commitdiff
Remove connection entries from HTTP router.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 14 Apr 2015 13:28:14 +0000 (14:28 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 14 Apr 2015 13:28:14 +0000 (14:28 +0100)
src/libutil/http.c
src/libutil/http.h

index 9e95462b461423325d743c037347bee8ced0ecac..d7181c674dc7d903fc186845d60cd69b50d83f1d 100644 (file)
@@ -1381,6 +1381,8 @@ rspamd_http_entry_free (struct rspamd_http_connection_entry *entry)
                if (entry->rt->finish_handler) {
                        entry->rt->finish_handler (entry);
                }
+
+               DL_DELETE (entry->rt->conns, entry);
                g_slice_free1 (sizeof (struct rspamd_http_connection_entry), entry);
        }
 }
@@ -1687,7 +1689,7 @@ rspamd_http_router_handle_socket (struct rspamd_http_connection_router *router,
 
        rspamd_http_connection_read_message (conn->conn, conn, fd, router->ptv,
                router->ev_base);
-       LL_PREPEND (router->conns, conn);
+       DL_PREPEND (router->conns, conn);
 }
 
 void
@@ -1697,7 +1699,7 @@ rspamd_http_router_free (struct rspamd_http_connection_router *router)
        struct rspamd_http_keypair *kp;
 
        if (router) {
-               LL_FOREACH_SAFE (router->conns, conn, tmp)
+               DL_FOREACH_SAFE (router->conns, conn, tmp)
                {
                        rspamd_http_entry_free (conn);
                }
index 3ecfc1c99405a63448be73bd0996c88deafb2d28..0c1515b47ff91e3b56150d359719f4800e7be6dc 100644 (file)
@@ -130,7 +130,7 @@ struct rspamd_http_connection_entry {
        struct rspamd_http_connection *conn;
        gpointer ud;
        gboolean is_reply;
-       struct rspamd_http_connection_entry *next;
+       struct rspamd_http_connection_entry *prev, *next;
 };
 
 struct rspamd_http_connection_router {