void lwan_shutdown(struct lwan *l) { lwan_status_info("Shutting down"); free(l->config.listener); free(l->config.error_template); free(l->config.config_file_path); lwan_job_thread_shutdown(); lwan_thread_shutdown(l); lwan_status_debug("Shutting down URL handlers"); lwan_trie_destroy(&l->url_map_trie); free(l->conns); lwan_response_shutdown(l); lwan_tables_shutdown(); lwan_status_shutdown(l); lwan_http_authorize_shutdown(); }
void lwan_shutdown(lwan_t *l) { lwan_status_info("Shutting down"); if (l->config.listener != default_config.listener) free(l->config.listener); lwan_job_thread_shutdown(); lwan_thread_shutdown(l); lwan_status_debug("Shutting down URL handlers"); lwan_trie_destroy(&l->url_map_trie); free(l->conns); lwan_response_shutdown(); lwan_tables_shutdown(); lwan_status_shutdown(l); lwan_http_authorize_shutdown(); lwan_module_shutdown(l); }
void lwan_shutdown(lwan_t *l) { lwan_status_info("Shutting down"); lwan_job_thread_shutdown(); lwan_thread_shutdown(l); lwan_socket_shutdown(l); lwan_status_debug("Shutting down URL handlers"); lwan_trie_destroy(l->url_map_trie); int i; for (i = l->thread.max_fd * l->thread.count - 1; i >= 0; --i) strbuf_free(l->conns[i].response_buffer); free(l->conns); lwan_response_shutdown(); lwan_tables_shutdown(); lwan_status_shutdown(l); lwan_http_authorize_shutdown(); }