--- main/Makefile.tmpl.org Sat Dec 2 16:09:32 2000 +++ main/Makefile.tmpl Sat Dec 2 16:23:34 2000 @@ -5,13 +5,13 @@ LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS) LIB= libmain.a -HEADERS= test_char.h uri_delims.h +HEADERS= test_char.h uri_delims.h li_config.h OBJS= alloc.o buff.o \ http_config.o http_core.o http_log.o \ http_main.o http_protocol.o http_request.o http_vhost.o \ util.o util_date.o util_script.o util_uri.o util_md5.o \ - rfc1413.o + rfc1413.o ap_lingerd.o .c.o: $(CC) -c $(INCLUDES) $(CFLAGS) $< --- main/http_main.c.orig 2004-09-22 23:25:46.402685376 +0200 +++ main/http_main.c 2004-09-22 23:27:10.840848824 +0200 @@ -59,6 +59,8 @@ #include "http_vhost.h" #include "util_script.h" /* to force util_script.c linking */ #include "util_uri.h" +#define IN_APACHE +#include "li_config.h" #include "scoreboard.h" #include "multithread.h" #include @@ -1908,6 +1910,19 @@ return; } + /* + * Try to feed the socket to the linger daemon. If it fails and + * we're configured to do so, do a lingering close anyway. + * Otherwise just close the socket; lingerd will linger on its copy + * of it. + */ + + if (lingerd_sendfd(lsd) == 0 || !(LINGER_ON_FAILURE)) { + ap_bclose(r->connection->client); + ap_kill_timeout(r); + return; + } + /* Set up to wait for readable data on socket... */ FD_ZERO(&lfds); @@ -4394,6 +4409,11 @@ ap_global_ctx = ap_ctx_new(NULL); #endif /* EAPI */ + + + /* try to connect to lingerd */ + lingerd_connect(); + } #ifndef MULTITHREAD