src/server/daemon/httplistener.c

changeset 74
5bc6d078fb2c
parent 69
4a10bc0ee80d
child 78
3578977d29a3
equal deleted inserted replaced
71:069c152f6272 74:5bc6d078fb2c
87 newls->cfg = conf->cfg; 87 newls->cfg = conf->cfg;
88 newls->nacceptors = conf->nacceptors; 88 newls->nacceptors = conf->nacceptors;
89 newls->default_vs.vs_name = conf->vs.ptr; 89 newls->default_vs.vs_name = conf->vs.ptr;
90 newls->port = fl->port; 90 newls->port = fl->port;
91 newls->server_socket = fl->server_socket; 91 newls->server_socket = fl->server_socket;
92 newls->running = 1;
92 newls->ref = 2; // 1 reference is fl->next 93 newls->ref = 2; // 1 reference is fl->next
93 94
94 newls->session_handler = fl->session_handler; // TODO 95 newls->session_handler = fl->session_handler; // TODO
95 96
96 // the listener threadpool might be changed 97 // the listener threadpool might be changed
137 return fl; 138 return fl;
138 } 139 }
139 // end remove 140 // end remove
140 141
141 HttpListener *listener = malloc(sizeof(HttpListener)); 142 HttpListener *listener = malloc(sizeof(HttpListener));
143 listener->running = 0;
142 listener->cfg = conf->cfg; 144 listener->cfg = conf->cfg;
143 listener->name = conf->name; 145 listener->name = conf->name;
144 listener->default_vs.vs_name = conf->vs.ptr; 146 listener->default_vs.vs_name = conf->vs.ptr;
145 if(conf->threadpool.ptr != NULL) { 147 if(conf->threadpool.ptr != NULL) {
146 listener->threadpool = get_threadpool(conf->threadpool); 148 listener->threadpool = get_threadpool(conf->threadpool);
192 194
193 return listener; 195 return listener;
194 } 196 }
195 197
196 int http_listener_start(HttpListener *listener) { 198 int http_listener_start(HttpListener *listener) {
199 if(listener->running) {
200 return 0;
201 }
197 printf("INFO: start listener\n"); 202 printf("INFO: start listener\n");
198 log_ereport(LOG_INFORM, "start listener on port %d", listener->port); 203 log_ereport(LOG_INFORM, "start listener on port %d", listener->port);
199 204
200 if (listen(listener->server_socket, 256) == -1) { 205 if (listen(listener->server_socket, 256) == -1) {
201 perror("Error: http_listener_start: listen"); 206 perror("Error: http_listener_start: listen");

mercurial