main.c (dovecot-2.3.16) | : | main.c (dovecot-2.3.17) | ||
---|---|---|---|---|
skipping to change at line 20 | skipping to change at line 20 | |||
#include "env-util.h" | #include "env-util.h" | |||
#include "module-dir.h" | #include "module-dir.h" | |||
#include "master-service.h" | #include "master-service.h" | |||
#include "master-service-settings.h" | #include "master-service-settings.h" | |||
#include "sql-api.h" | #include "sql-api.h" | |||
#include "dict.h" | #include "dict.h" | |||
#include "dict-client.h" | #include "dict-client.h" | |||
#include "dict-commands.h" | #include "dict-commands.h" | |||
#include "dict-connection.h" | #include "dict-connection.h" | |||
#include "dict-settings.h" | #include "dict-settings.h" | |||
#include "dict-init-cache.h" | ||||
#include "main.h" | #include "main.h" | |||
#include <math.h> | #include <math.h> | |||
static struct module *modules; | static struct module *modules; | |||
static struct timeout *to_proctitle; | static struct timeout *to_proctitle; | |||
static bool proctitle_updated; | static bool proctitle_updated; | |||
static void | static void | |||
add_stats_string(string_t *str, struct stats_dist *stats, const char *name) | add_stats_string(string_t *str, struct stats_dist *stats, const char *name) | |||
skipping to change at line 131 | skipping to change at line 132 | |||
dict_drivers_register_all(); | dict_drivers_register_all(); | |||
dict_commands_init(); | dict_commands_init(); | |||
dict_connections_init(); | dict_connections_init(); | |||
if (dict_settings->verbose_proctitle) | if (dict_settings->verbose_proctitle) | |||
dict_proctitle_update(NULL); | dict_proctitle_update(NULL); | |||
} | } | |||
static void main_deinit(void) | static void main_deinit(void) | |||
{ | { | |||
/* FIXME: we're not able to do a clean deinit currently without | ||||
larger changes. */ | ||||
lib_exit(0); | ||||
timeout_remove(&to_proctitle); | timeout_remove(&to_proctitle); | |||
/* wait for all dict operations to finish */ | ||||
dict_init_cache_wait_all(); | ||||
/* connections should no longer have any extra refcounts */ | ||||
dict_connections_destroy_all(); | dict_connections_destroy_all(); | |||
dict_init_cache_destroy_all(); | ||||
dict_drivers_unregister_all(); | dict_drivers_unregister_all(); | |||
dict_commands_deinit(); | dict_commands_deinit(); | |||
module_dir_unload(&modules); | module_dir_unload(&modules); | |||
sql_drivers_deinit(); | sql_drivers_deinit(); | |||
} | } | |||
int main(int argc, char *argv[]) | int main(int argc, char *argv[]) | |||
{ | { | |||
skipping to change at line 171 | skipping to change at line 174 | |||
i_fatal("Error reading configuration: %s", error); | i_fatal("Error reading configuration: %s", error); | |||
master_service_init_log_with_pid(master_service); | master_service_init_log_with_pid(master_service); | |||
main_preinit(); | main_preinit(); | |||
master_service_set_die_callback(master_service, dict_die); | master_service_set_die_callback(master_service, dict_die); | |||
main_init(); | main_init(); | |||
master_service_init_finish(master_service); | master_service_init_finish(master_service); | |||
master_service_run(master_service, client_connected); | master_service_run(master_service, client_connected); | |||
/* clean up cached dicts */ | ||||
main_deinit(); | main_deinit(); | |||
master_service_deinit(&master_service); | master_service_deinit(&master_service); | |||
return 0; | return 0; | |||
} | } | |||
End of changes. 5 change blocks. | ||||
3 lines changed or deleted | 7 lines changed or added |