diff options
author | Jan Kneschke <jan@kneschke.de> | 2006-03-04 14:53:57 +0000 |
---|---|---|
committer | Jan Kneschke <jan@kneschke.de> | 2006-03-04 14:53:57 +0000 |
commit | d43a8e9d8a0f431f85698a496e5c2e4e5f225381 (patch) | |
tree | 2acf5464686c8448bbb765e140ad0f7e5a1b4f28 | |
parent | 44a623c8431c65784722bf974bf00cf84ff26680 (diff) | |
download | lighttpd-git-d43a8e9d8a0f431f85698a496e5c2e4e5f225381.tar.gz |
don't init a SERVER["socket"] if it is initialized already
git-svn-id: svn+ssh://svn.lighttpd.net/lighttpd/branches/lighttpd-merge-1.4.x@1019 152afb58-edef-0310-8abb-c4023f1b3aa9
-rw-r--r-- | src/network.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/network.c b/src/network.c index baeeb7f2..fe52bc22 100644 --- a/src/network.c +++ b/src/network.c @@ -540,6 +540,7 @@ int network_init(server *srv) { for (i = 1; i < srv->config_context->used; i++) { data_config *dc = (data_config *)srv->config_context->data[i]; specific_config *s = srv->config_storage[i]; + size_t j; /* not our stage */ if (COMP_SERVER_SOCKET != dc->comp) continue; @@ -549,13 +550,20 @@ int network_init(server *srv) { return -1; } + + /* check if we already know this socket, + * if yes, don't init it */ + for (j = 0; j < srv->srv_sockets.used; j++) { + if (buffer_is_equal(srv->srv_sockets.ptr[j]->srv_token, dc->string)) { + break; + } + } - if (0 != network_server_init(srv, dc->string, s)) { - return -1; + if (j == srv->srv_sockets.used) { + if (0 != network_server_init(srv, dc->string, s)) return -1; } } - return 0; } |