client-common.c revision d873ff0b3e44137e712ed274e9b0e0fd3baea521
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen/* Copyright (c) 2002-2009 Dovecot authors, see the included COPYING file */
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenstruct client *clients = NULL, *last_client = NULL;
31ddc75584c5cde53d2e78a737587f2e7fdcb0d2Timo Sirainenstatic unsigned int clients_count = 0;
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenstatic void client_idle_disconnect_timeout(struct client *client)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen client_send_line(client, CLIENT_CMD_REPLY_BYE,
c251a38df327599a62d341bf5c2282f31352faa5Timo Sirainen "Disconnected for inactivity.");
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen client_destroy(client, "Disconnected: Inactivity");
e06c0b65c16ccce69bbee009ead14d7d3d17a256Timo Sirainenstatic void client_open_streams(struct client *client)
6a19e109ee8c5a6f688da83a86a7f6abeb71abddTimo Sirainen i_stream_create_fd(client->fd, LOGIN_MAX_INBUF_SIZE, FALSE);
1175f27441385a7011629f295f42708f9a3a4ffcTimo Sirainen o_stream_create_fd(client->fd, LOGIN_MAX_OUTBUF_SIZE, FALSE);
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenstruct client *client_create(int fd, bool ssl, pool_t pool,
09c3a491f4f6ccebe290c7709bdc0d79a187610bTimo Sirainen client->v.auth_send_challenge = client_auth_send_challenge;
5a07b37a9df398b5189c14872a600384208ab74bTimo Sirainen client->v.auth_parse_response = client_auth_parse_response;
return client;
return TRUE;
return FALSE;
void client_destroy_oldest(void)
void clients_destroy_all(void)
int fd_ssl;
int ret;
if (ret > 0) {
if (!ssl_initialized) {
unsigned int clients_get_count(void)
return clients_count;
const char *addr;
static const struct var_expand_table *
const char *ssl_state =
const char *ssl_error =
return tab;
char key;
return FALSE;
T_BEGIN {
} T_END;
T_BEGIN {
} T_END;
const char *const *net;
unsigned int bits;
return FALSE;
return TRUE;
return FALSE;
const char *text)
return FALSE;
return FALSE;
return TRUE;
return TRUE;