http-server.c revision f9d2a1f21ad65262bc630f0834d7eead06a1bac3
a8c5a86d183db25a57bf193c06b41e092ec2e151Timo Sirainen/* Copyright (c) 2013-2016 Dovecot authors, see the included COPYING file */
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenstruct http_server *http_server_init(const struct http_server_settings *set)
111a7dda02defa4d612468cfc3c40da5240645afTimo Sirainen pool = pool_alloconly_create("http server", 1024);
8a524e87e44ae629cf90262e92f7972ea3450c35Timo Sirainen if (set->rawlog_dir != NULL && *set->rawlog_dir != '\0')
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainen server->set.rawlog_dir = p_strdup(pool, set->rawlog_dir);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainen server->set.max_client_idle_time_msecs = set->max_client_idle_time_msecs;
db0735f9b388c5bcfb781b1b25015e898d63d953Timo Sirainen (set->max_pipelined_requests > 0 ? set->max_pipelined_requests : 1);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainen server->set.request_limits = set->request_limits;
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainen server->conn_list = http_server_connection_list_init();
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenvoid http_server_deinit(struct http_server **_server)
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainen ssl_iostream_context_deinit(&server->ssl_ctx);
24e5e4526d8f5cbc056ab97fd0d154d0936d7a5eTimo Sirainenvoid http_server_switch_ioloop(struct http_server *server)
5c2d695acf9f95ae0dcdda89c4d2391ceda4d672Timo Sirainen struct connection *_conn = server->conn_list->connections;
5c2d695acf9f95ae0dcdda89c4d2391ceda4d672Timo Sirainen /* move connections */
84078771687fabf75819918f0f3aecdc3ed08b36Timo Sirainen /* FIXME: we wouldn't necessarily need to switch all of them
d798962a54c5cda054d57a0cfc7e5f47dfa20f6eTimo Sirainen immediately, only those that have requests now. but also connections
5c2d695acf9f95ae0dcdda89c4d2391ceda4d672Timo Sirainen that get new requests before ioloop is switched again.. */