client-common-auth.c revision 63e376747537cb2dfaa0e36d1bafd19df1443a4e
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen/* Copyright (c) 2002-2013 Dovecot authors, see the included COPYING file */
1f9d1bedae25d86f26c239055c5487499dfeeb58Timo Sirainen#define PROXY_FAILURE_MSG "Account is temporarily unavailable."
f37ecd72aad9b806aae83f71bacafdce32146945Timo Sirainen/* If we've been waiting auth server to respond for over this many milliseconds,
f37ecd72aad9b806aae83f71bacafdce32146945Timo Sirainen send a "waiting" message. */
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen#define AUTH_WAITING_WARNING_TIMEOUT_MSECS (10*1000)
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainenstatic void client_auth_failed(struct client *client)
7487ff578435377bbeefffdbfb78ca09ed1292dfTimo Sirainen if (client->auth_initializing || client->destroyed)
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen client->io = io_add(client->fd, IO_READ, client_input, client);
4d4d6d4745682790c20d759ba93dbea46b812c5dTimo Sirainenstatic void client_auth_waiting_timeout(struct client *client)
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen client_log_warn(client, "Auth process not responding, "
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen "delayed sending initial response (greeting)");
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen client_notify_status(client, FALSE, client->master_tag == 0 ?
a3fe8c0c54d87822f4b4f8f0d10caac611861b2bTimo Sirainen AUTH_SERVER_WAITING_MSG : AUTH_MASTER_WAITING_MSG);
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainenvoid client_set_auth_waiting(struct client *client)
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainenstatic void client_auth_parse_args(struct client *client,
e0740628f6ca05f4bc79a9d8a90b650f4d38d4d0Timo Sirainen const char *const *args,
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen reply_r->proxy_timeout_msecs = 1000*atoi(value);
275385a2ecc58e41dc7df3ce3cd943caaa58c4d1Timo Sirainen reply_r->ssl_flags |= PROXY_SSL_FLAG_ANY_CERT;
6c2ce1d5bf17b21e804a079eb0f973b7ab83e0d8Timo Sirainen reply_r->port = login_binary->default_ssl_port;
d176f84ce5ca2073f4dfbafb457b9c74f6bf0d76Timo Sirainen reply_r->ssl_flags |= PROXY_SSL_FLAG_ANY_CERT;
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen /* already handled in login-common */
8d3278a82b964217d95c340ec6f82037cdc59d19Timo Sirainen i_debug("Ignoring unknown passdb extra field: %s", key);
if (send_line) {
const char *line;
unsigned int duration;
if (!success)
return FALSE;
return TRUE;
const char *reason;
return TRUE;
return FALSE;
return TRUE;
const unsigned char *data;
unsigned int len;
for (i = 0; i < size; i++) {
return i < size;
switch (sasl_reply) {
data);
const char *init_resp)
return TRUE;
if (pass_sent) {
return FALSE;
void clients_notify_auth_connected(void)