main.c revision b36a03e5ad84039d63b024cada151768448c48e5
c25356d5978632df6203437e1953bcb29e0c736fTimo Sirainen/* Copyright (c) 2002-2014 Dovecot authors, see the included COPYING file */
10c96a244935de4add8213ba0b894178dfb889a5Timo Sirainenstatic struct mail_storage_service_ctx *storage_service;
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenstatic struct master_login *master_login = NULL;
8cb72c59d5ea4e9e5f638d7ec840bb853f5a188eTimo Sirainenimap_client_created_func_t *hook_client_created = NULL;
8cb72c59d5ea4e9e5f638d7ec840bb853f5a188eTimo Sirainenimap_client_created_hook_set(imap_client_created_func_t *new_hook)
8cb72c59d5ea4e9e5f638d7ec840bb853f5a188eTimo Sirainen imap_client_created_func_t *old_hook = hook_client_created;
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen str_append(title, net_ip2addr(client->user->remote_ip));
7662010b03ffe5f2a6ecf4b4eb220d1c65efea76Timo Sirainen for (cmd = client->command_queue; cmd != NULL; cmd = cmd->next) {
c0435c854a0e7246373b9752d163095cc4fbe985Timo Sirainen if (str_len(title) < IMAP_PROCTITLE_PREFERRED_LEN) {
51e1a1c280ccb461a15827f7987d09cb9708b6e3Timo Sirainen if (cmd->state == CLIENT_COMMAND_STATE_WAIT_OUTPUT)
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen str_printfa(title, " - %"PRIuSIZE_T" bytes waiting",
c0435c854a0e7246373b9752d163095cc4fbe985Timo Sirainen o_stream_get_buffer_used_size(client->output));
c0435c854a0e7246373b9752d163095cc4fbe985Timo Sirainen str_printfa(title, "%u connections", imap_client_count);
07e4875d250e7a7157cd99132aafc773cf3cdf83Timo Sirainenstatic void client_kill_idle(struct client *client)
7d207b1e77a7b5e3fda640e353acfc86d261fedfTimo Sirainen client_send_line(client, "* BYE Server shutting down.");
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen client_destroy(client, "Server shutting down.");
4b9f99761df5014c659cd87fddaf6854af428cfcTimo Sirainenstatic void imap_die(void)
a3c197999dfe2b0c8ea38cb77cfa5e95026005c0Timo Sirainen time_t stop_timestamp = now - IMAP_DIE_IDLE_SECS;
923115fd382904fa13bb09bf307bf2835b52df60Timo Sirainen for (client = imap_clients; client != NULL; client = next) {
51e1a1c280ccb461a15827f7987d09cb9708b6e3Timo Sirainen last_io = I_MAX(client->last_input, client->last_output);
89e195dfb5c4b0efd9b9f459771a4467674e5b1fTimo Sirainen stop_msecs = (last_io - stop_timestamp) * 1000;
68a4946b12583b88fa802e52ebee45cd96056772Timo Sirainen const char *tag;
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainen const unsigned char *input;
ecc81625167ed96c04c02aa190a1ea5baa65b474Timo Sirainenclient_parse_input(const unsigned char *data, unsigned int len,
282a436a74d8835edb45cc019b1c916013013fd3Timo Sirainen unsigned int taglen;
const char **error_r)
T_BEGIN {
} T_END;
const char *error;
const char *errormsg)
const char *msg;
if (IS_STANDALONE()) {
return FATAL_DEFAULT;
random_init();
if (IS_STANDALONE()) {
T_BEGIN {
} T_END;
} else T_BEGIN {
} T_END;