init the fdevent-handler AFTER daemonize and AFTER the max-worker spawning
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@844 152afb58-edef-0310-8abb-c4023f1b3aa9
This commit is contained in:
parent
1a96aea496
commit
95fb9a3cf7
|
@ -185,7 +185,7 @@ int fdevent_fcntl_set(fdevents *ev, int fd) {
|
|||
/* close fd on exec (cgi) */
|
||||
fcntl(fd, F_SETFD, FD_CLOEXEC);
|
||||
#endif
|
||||
if (ev->fcntl_set) return ev->fcntl_set(ev, fd);
|
||||
if ((ev) && (ev->fcntl_set)) return ev->fcntl_set(ev, fd);
|
||||
#ifdef O_NONBLOCK
|
||||
return fcntl(fd, F_SETFL, O_NONBLOCK | O_RDWR);
|
||||
#else
|
||||
|
|
|
@ -159,11 +159,6 @@ int network_server_init(server *srv, buffer *host_token, specific_config *s) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
if (-1 == fdevent_fcntl_set(srv->ev, srv_socket->fd)) {
|
||||
log_error_write(srv, __FILE__, __LINE__, "ss", "fcntl failed:", strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
||||
switch(srv_socket->addr.plain.sa_family) {
|
||||
#ifdef HAVE_IPV6
|
||||
case AF_INET6:
|
||||
|
|
58
src/server.c
58
src/server.c
|
@ -529,11 +529,6 @@ int main (int argc, char **argv) {
|
|||
}
|
||||
}
|
||||
|
||||
if (NULL == (srv->ev = fdevent_init(srv->max_fds + 1, srv->event_handler))) {
|
||||
log_error_write(srv, __FILE__, __LINE__,
|
||||
"s", "fdevent_init failed");
|
||||
return -1;
|
||||
}
|
||||
|
||||
#ifdef HAVE_PWD_H
|
||||
/* set user and group */
|
||||
|
@ -620,13 +615,6 @@ int main (int argc, char **argv) {
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (NULL == (srv->ev = fdevent_init(srv->max_fds + 1, srv->event_handler))) {
|
||||
log_error_write(srv, __FILE__, __LINE__,
|
||||
"s", "fdevent_init failed");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (0 != network_init(srv)) {
|
||||
plugins_free(srv);
|
||||
|
@ -728,22 +716,6 @@ int main (int argc, char **argv) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* kqueue() is called here, select resets its internals,
|
||||
* all server sockets get their handlers
|
||||
*
|
||||
* */
|
||||
if (0 != network_register_fdevents(srv)) {
|
||||
plugins_free(srv);
|
||||
network_close(srv);
|
||||
server_free(srv);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* get the current number of FDs */
|
||||
srv->cur_fds = open("/dev/null", O_RDONLY);
|
||||
close(srv->cur_fds);
|
||||
|
||||
#ifdef HAVE_SIGACTION
|
||||
memset(&act, 0, sizeof(act));
|
||||
|
@ -836,6 +808,36 @@ int main (int argc, char **argv) {
|
|||
}
|
||||
#endif
|
||||
|
||||
if (NULL == (srv->ev = fdevent_init(srv->max_fds + 1, srv->event_handler))) {
|
||||
log_error_write(srv, __FILE__, __LINE__,
|
||||
"s", "fdevent_init failed");
|
||||
return -1;
|
||||
}
|
||||
/*
|
||||
* kqueue() is called here, select resets its internals,
|
||||
* all server sockets get their handlers
|
||||
*
|
||||
* */
|
||||
if (0 != network_register_fdevents(srv)) {
|
||||
plugins_free(srv);
|
||||
network_close(srv);
|
||||
server_free(srv);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* get the current number of FDs */
|
||||
srv->cur_fds = open("/dev/null", O_RDONLY);
|
||||
close(srv->cur_fds);
|
||||
|
||||
for (i = 0; i < srv->srv_sockets.used; i++) {
|
||||
server_socket *srv_socket = srv->srv_sockets.ptr[i];
|
||||
if (-1 == fdevent_fcntl_set(srv->ev, srv_socket->fd)) {
|
||||
log_error_write(srv, __FILE__, __LINE__, "ss", "fcntl failed:", strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* main-loop */
|
||||
while (!srv_shutdown) {
|
||||
int n;
|
||||
|
|
Loading…
Reference in New Issue