chiark / gitweb /
yaid.c (cancel_proxy): Reorder destruction a little.
[yaid] / yaid.c
diff --git a/yaid.c b/yaid.c
index a9793a0ae776412d9cc7aaba28ad4bd297d5c7b0..cc3bb47f9eb8747ea0f92da12b0a1a41d1efb6e9 100644 (file)
--- a/yaid.c
+++ b/yaid.c
@@ -365,8 +365,8 @@ static void cancel_proxy(struct proxy *px)
     selbuf_destroy(&px->b);
     free_writebuf(&px->wb);
   }
-  selbuf_enable(&px->c->b);
   px->c->px = 0;
+  selbuf_enable(&px->c->b);
   xfree(px);
 }
 
@@ -633,6 +633,7 @@ static void client_line(char *line, size_t len, void *p)
   int i, t;
 
   /* If the connection has closed, then tidy stuff away. */
+  c->q.s[R].addr = c->raddr;
   c->q.s[L].port = c->q.s[R].port = 0;
   if (!line) {
     disconnect_client(c);
@@ -658,7 +659,6 @@ static void client_line(char *line, size_t len, void *p)
   skipws(&q); if (*q) goto bad;
 
   /* Identify the connection.  Act on the result. */
-  c->q.s[R].addr = c->raddr;
   identify(&c->q);
   switch (c->q.resp) {