]> jfr.im git - solanum.git/blobdiff - src/listener.c
Add listen::defer_accept option for controlling usage of TCP_DEFER_ACCEPT option.
[solanum.git] / src / listener.c
index 7b528724a91245a386bb37a790055cf2455c1723..3e4965c388a8659e23f15fd7d5b53f984e942b85 100644 (file)
@@ -231,7 +231,7 @@ inetport(struct Listener *listener)
                return 0;
        }
 
-       if(rb_listen(F, RATBOX_SOMAXCONN))
+       if(rb_listen(F, RATBOX_SOMAXCONN, listener->defer_accept))
        {
                ilog_error("listen()");
                rb_close(F);
@@ -304,7 +304,7 @@ find_listener(struct rb_sockaddr_storage *addr)
  * the format "255.255.255.255"
  */
 void
-add_listener(int port, const char *vhost_ip, int family, int ssl)
+add_listener(int port, const char *vhost_ip, int family, int ssl, int defer_accept)
 {
        struct Listener *listener;
        struct rb_sockaddr_storage vaddr;
@@ -377,6 +377,7 @@ add_listener(int port, const char *vhost_ip, int family, int ssl)
 
        listener->F = NULL;
        listener->ssl = ssl;
+       listener->defer_accept = defer_accept;
 
        if(inetport(listener))
                listener->active = 1;