HTTP server: Allow TCP socket to be reused
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 14 Jun 2013 18:42:23 +0000 (11:42 -0700)
committerJouni Malinen <j@w1.fi>
Fri, 18 Oct 2013 11:13:45 +0000 (14:13 +0300)
This makes it easier to handle cases where the application is restarted
and the previously used local TCP port may not have been fully cleared
in the network stack.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

src/wps/http_server.c

index 6ca3214..06c8bee 100644 (file)
@@ -232,6 +232,7 @@ struct http_server * http_server_init(struct in_addr *addr, int port,
 {
        struct sockaddr_in sin;
        struct http_server *srv;
+       int on = 1;
 
        srv = os_zalloc(sizeof(*srv));
        if (srv == NULL)
@@ -242,6 +243,9 @@ struct http_server * http_server_init(struct in_addr *addr, int port,
        srv->fd = socket(AF_INET, SOCK_STREAM, 0);
        if (srv->fd < 0)
                goto fail;
+
+       setsockopt(srv->fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
+
        if (fcntl(srv->fd, F_SETFL, O_NONBLOCK) < 0)
                goto fail;
        if (port < 0)