chiark / gitweb /
server/peer.c (p_bind): Add the selector after fetching the port number.
[tripe] / server / peer.c
index 246d84e2a494c39ef2c42eeb03ae92b5b21dab14..fb016169acfc70d4fae4215ca8fbe947613b8ee6 100644 (file)
@@ -876,9 +876,6 @@ void p_bind(struct addrinfo *ailist)
       exit(EXIT_FAILURE);
     }
     fdflags(fd, O_NONBLOCK, O_NONBLOCK, FD_CLOEXEC, FD_CLOEXEC);
-    sel_initfile(&sel, &udpsock[i].sf, fd, SEL_READ, p_read, 0);
-    sel_addfile(&udpsock[i].sf);
-    T( trace(T_PEER, "peer: created %s socket", aftab[i].name); )
     if (port)
       udpsock[i].port = port;
     else {
@@ -890,6 +887,9 @@ void p_bind(struct addrinfo *ailist)
       }
       udpsock[i].port = lastport = getport(&a);
     }
+    T( trace(T_PEER, "peer: created %s socket", aftab[i].name); )
+    sel_initfile(&sel, &udpsock[i].sf, fd, SEL_READ, p_read, 0);
+    sel_addfile(&udpsock[i].sf);
   }
 
 }