New @conn_init@ interface.
[fwd] / blast.c
diff --git a/blast.c b/blast.c
index fdad3dd..c273a41 100644 (file)
--- a/blast.c
+++ b/blast.c
@@ -75,8 +75,8 @@ static void connected(int fd, void *p)
   else {
     count++;
     close(fd);
-    newconn(b);
   }
+  newconn(b);
 }
 
 static void timeout(struct timeval *tv, void *p)
@@ -110,9 +110,10 @@ static void newconn(blast *b)
     goto fail;
   gettimeofday(&tv, 0);
   TV_ADD(&tv, &tv, &ctv);
+  if (conn_init(&b->c, &sel, fd, (struct sockaddr *)&sin, sizeof(sin),
+               connected, b))
+    goto fail;
   sel_addtimer(&sel, &b->t, &tv, timeout, b);
-  conn_init(&b->c, &sel, fd, (struct sockaddr *)&sin, sizeof(sin),
-           connected, b);
   return;
 
 fail: