]> granicus.if.org Git - libevent/commitdiff
Save syscalls when constructing listener sockets for evhttp
authorNick Mathewson <nickm@torproject.org>
Fri, 10 Feb 2012 21:32:32 +0000 (16:32 -0500)
committerNick Mathewson <nickm@torproject.org>
Fri, 10 Feb 2012 21:32:32 +0000 (16:32 -0500)
http.c

diff --git a/http.c b/http.c
index 9f1bc89930f65bd389f9eaafc62549c2820b3893..0ed315ba0aee72b91e085d102144ce9fa0a6ca50 100644 (file)
--- a/http.c
+++ b/http.c
@@ -3984,17 +3984,13 @@ bind_socket_ai(struct evutil_addrinfo *ai, int reuse)
        int serrno;
 
        /* Create listen socket */
-       fd = socket(ai ? ai->ai_family : AF_INET, SOCK_STREAM, 0);
+       fd = evutil_socket(ai ? ai->ai_family : AF_INET,
+           SOCK_STREAM|EVUTIL_SOCK_NONBLOCK|EVUTIL_SOCK_CLOEXEC, 0);
        if (fd == -1) {
                        event_sock_warn(-1, "socket");
                        return (-1);
        }
 
-       if (evutil_make_socket_nonblocking(fd) < 0)
-               goto out;
-       if (evutil_make_socket_closeonexec(fd) < 0)
-               goto out;
-
        setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (void *)&on, sizeof(on));
        if (reuse)
                evutil_make_listen_socket_reuseable(fd);