don't need fcntl for non blocking socket, just ask for it upfront
authortedu <tedu@openbsd.org>
Sat, 17 Oct 2015 00:38:57 +0000 (00:38 +0000)
committertedu <tedu@openbsd.org>
Sat, 17 Oct 2015 00:38:57 +0000 (00:38 +0000)
usr.sbin/rebound/rebound.c

index 740cbe7..2ca65da 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: rebound.c,v 1.25 2015/10/16 20:25:09 tedu Exp $ */
+/* $OpenBSD: rebound.c,v 1.26 2015/10/17 00:38:57 tedu Exp $ */
 /*
  * Copyright (c) 2015 Ted Unangst <tedu@openbsd.org>
  *
@@ -24,7 +24,6 @@
 #include <sys/signal.h>
 #include <sys/wait.h>
 
-#include <fcntl.h>
 #include <signal.h>
 #include <syslog.h>
 #include <stdlib.h>
@@ -308,11 +307,9 @@ newtcprequest(int ld, struct sockaddr *remoteaddr)
        if (req->client == -1)
                goto fail;
 
-       req->s = socket(remoteaddr->sa_family, SOCK_STREAM, 0);
+       req->s = socket(remoteaddr->sa_family, SOCK_STREAM | SOCK_NONBLOCK, 0);
        if (req->s == -1)
                goto fail;
-       if (fcntl(req->s, F_SETFL, O_NONBLOCK) == -1)
-               goto fail;
        req->phase = 1;
        if (connect(req->s, remoteaddr, remoteaddr->sa_len) == -1) {
                if (errno != EINPROGRESS)