summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjan <jan@152afb58-edef-0310-8abb-c4023f1b3aa9>2006-03-04 14:53:57 +0000
committerjan <jan@152afb58-edef-0310-8abb-c4023f1b3aa9>2006-03-04 14:53:57 +0000
commit7f74b1798bc9b64529ee223b379ef3970c674693 (patch)
tree2acf5464686c8448bbb765e140ad0f7e5a1b4f28
parentc460dd00d342a7f676077c8d2da542b2d7e55ae0 (diff)
downloadlighttpd-7f74b1798bc9b64529ee223b379ef3970c674693.tar.gz
don't init a SERVER["socket"] if it is initialized already
git-svn-id: svn://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;
}