remove unused listnode in rpxd_connection, add tmp_string and fix destructor
authorChristian Thaeter <ct@pipapo.org>
Mon, 8 Oct 2007 17:04:52 +0000 (19:04 +0200)
committerChristian Thaeter <ct@pipapo.org>
Mon, 8 Oct 2007 17:04:52 +0000 (19:04 +0200)
rxpd.c
rxpd.h

diff --git a/rxpd.c b/rxpd.c
index 924a4e0..8e5c076 100644 (file)
--- a/rxpd.c
+++ b/rxpd.c
@@ -440,8 +440,6 @@ rxpd_connection_new (struct rxpd_base* base, int fd)
   if (!self)
     abort();
 
-  llist_init (&self->node);
-
   socklen_t addr_sz = sizeof (self->peer_addr); 
   self->fd = accept (fd, (struct sockaddr*)&self->peer_addr, &addr_sz);
   if (self->fd == -1)
@@ -453,6 +451,8 @@ rxpd_connection_new (struct rxpd_base* base, int fd)
 
   self->base = base;
   self->file = NULL;
+  self->tmp_str = NULL;
+  llist_init (&self->tmp_list);
 
   rxpd_buffer_init (&self->in, self);
   rxpd_buffer_init (&self->out, self);
@@ -467,7 +467,12 @@ rxpd_connection_delete (struct rxpd_connection* self)
   if (self)
     {
       event_del (&self->ev);
-      llist_unlink (&self->node);
+      free (self->tmp_str);
+      LLIST_WHILE_HEAD (&self->tmp_list, n)
+        {
+          struct rxpd_rule* node = (struct rxpd_rule*)n;
+          rxpd_rule_delete (node);
+        }
       close (self->fd);
     }
   free (self);
@@ -620,7 +625,6 @@ rxpd_connection_APPEND_PREPEND_helper (int fd, short event, void* ptr, int do_ap
           close (fd);
           return;
         }
-      llist_init (&self->tmp_list);
     }
 
   if (event == EV_READ)
diff --git a/rxpd.h b/rxpd.h
index fceeacb..d3e841c 100644 (file)
--- a/rxpd.h
+++ b/rxpd.h
@@ -187,11 +187,11 @@ rxpd_buffer_state (struct rxpd_buffer* self)
 //
 struct rxpd_connection
 {
-  llist node;
   int fd;
   struct event ev;
   struct rxpd_base* base;
   struct rxpd_file* file;
+  char* tmp_str;
   llist tmp_list;
 
   struct sockaddr peer_addr;