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"); |