X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=secnet.git;a=blobdiff_plain;f=udp.c;h=5ad0fd44fd6b175e34d2aaf0c1b60135854d6873;hp=30bf73f7476030df04a2d99106423cb021f6ccdc;hb=a0fac2f1c903f765c8b8596f1ec93beb52b72c7a;hpb=5f8b7a8ea0f928a60a67068408fd7a798024a877;ds=sidebyside diff --git a/udp.c b/udp.c index 30bf73f..5ad0fd4 100644 --- a/udp.c +++ b/udp.c @@ -206,8 +206,7 @@ bool_t udp_make_socket(struct udpcommon *uc, struct udpsock *us, us->fd=socket(addr->sa.sa_family, SOCK_DGRAM, IPPROTO_UDP); if (us->fd<0) FAIL("socket"); - if (fcntl(us->fd, F_SETFL, fcntl(us->fd, F_GETFL)|O_NONBLOCK)==-1) - FAIL("fcntl(set O_NONBLOCK)"); + setnonblock(us->fd); setcloexec(us->fd); #ifdef CONFIG_IPV6 if (addr->sa.sa_family==AF_INET6) { @@ -232,6 +231,7 @@ bool_t udp_make_socket(struct udpcommon *uc, struct udpsock *us, char *argv[5], addrstr[33], portstr[5]; const char *addrfam; int port; + afterfork(); switch (addr->sa.sa_family) { case AF_INET: sprintf(addrstr,"%08lX",(long)addr->sin.sin_addr.s_addr);