yaid.c (cancel_proxy): Reorder destruction a little.
[yaid] / yaid.c
diff --git a/yaid.c b/yaid.c
index a9793a0..cc3bb47 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) {