From 90ed03ab289947f5576d2c616ada27724f50e9cd Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 19 Feb 2010 12:04:31 +0200 Subject: [PATCH] *-login: If we disconnect from auth server, make sure we reconnect back when necessary. --HG-- branch : HEAD --- src/lib-auth/auth-client.c | 6 ++++++ src/lib-auth/auth-client.h | 1 + src/login-common/main.c | 3 +++ 3 files changed, 10 insertions(+) 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); -- 2.47.3