]> err.no Git - varnish/commitdiff
Set SO_LINGER to zero
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Fri, 7 Jul 2006 07:48:49 +0000 (07:48 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Fri, 7 Jul 2006 07:48:49 +0000 (07:48 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@373 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache_acceptor.c

index ada07107d6ee9b0ac28f652d85e7beb63df078d1..66fc17a6035541727ed769acb551a874e863df6f 100644 (file)
@@ -187,6 +187,7 @@ accept_f(int fd, short event, void *arg)
        struct sess *sp;
        char port[NI_MAXSERV];
        int i;
+       struct linger linger;
 
        VSL_stats->client_conn++;
 
@@ -212,6 +213,12 @@ accept_f(int fd, short event, void *arg)
        i = 1;
        AZ(setsockopt(sp->fd, SOL_SOCKET, SO_NOSIGPIPE, &i, sizeof i));
 #endif
+#ifdef SO_LINGER /* XXX Linux*/
+       linger.l_onoff = 0;
+       linger.l_linger = 0;
+       AZ(setsockopt(sp->fd, SOL_SOCKET, SO_LINGER, &linger, sizeof linger));
+#endif
+
        i = getnameinfo(addr, l,
            sp->addr, VCA_ADDRBUFSIZE,
            port, sizeof port, NI_NUMERICHOST | NI_NUMERICSERV);