summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kneschke <jan@kneschke.de>2006-03-04 14:53:57 +0000
committerJan Kneschke <jan@kneschke.de>2006-03-04 14:53:57 +0000
commitd43a8e9d8a0f431f85698a496e5c2e4e5f225381 (patch)
tree2acf5464686c8448bbb765e140ad0f7e5a1b4f28
parent44a623c8431c65784722bf974bf00cf84ff26680 (diff)
downloadlighttpd-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.c14
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;
}