From: Timo Sirainen Date: Fri, 19 Feb 2010 10:04:31 +0000 (+0200) Subject: *-login: If we disconnect from auth server, make sure we reconnect back when necessary. X-Git-Tag: 2.0.beta3~31 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=90ed03ab289947f5576d2c616ada27724f50e9cd;p=thirdparty%2Fdovecot%2Fcore.git *-login: If we disconnect from auth server, make sure we reconnect back when necessary. --HG-- branch : HEAD --- diff --git a/src/lib-auth/auth-client.c b/src/lib-auth/auth-client.c index 3185187edd..d28aaffce0 100644 --- a/src/lib-auth/auth-client.c +++ b/src/lib-auth/auth-client.c @@ -31,6 +31,12 @@ void auth_client_deinit(struct auth_client **_client) i_free(client); } +void auth_client_connect(struct auth_client *client) +{ + if (client->conn->fd == -1) + auth_server_connection_connect(client->conn); +} + void auth_client_disconnect(struct auth_client *client) { auth_server_connection_disconnect(client->conn); diff --git a/src/lib-auth/auth-client.h b/src/lib-auth/auth-client.h index 78566170b4..fc376b2e00 100644 --- a/src/lib-auth/auth-client.h +++ b/src/lib-auth/auth-client.h @@ -54,6 +54,7 @@ auth_client_init(const char *auth_socket_path, unsigned int client_pid, bool debug); void auth_client_deinit(struct auth_client **client); +void auth_client_connect(struct auth_client *client); void auth_client_disconnect(struct auth_client *client); bool auth_client_is_connected(struct auth_client *client); void auth_client_set_connect_notify(struct auth_client *client, diff --git a/src/login-common/main.c b/src/login-common/main.c index 8c0f759e3d..8ffdfd2925 100644 --- a/src/login-common/main.c +++ b/src/login-common/main.c @@ -211,6 +211,9 @@ static void client_connected(const struct master_service_connection *conn) global_login_settings->login_access_sockets; struct login_access_lookup *lookup; + /* make sure we're connected (or attempting to connect) to auth */ + auth_client_connect(auth_client); + if (*access_sockets == '\0') { /* no access checks */ client_connected_finish(conn);