changeset 1705:5121567de516 HEAD

bugfixes
author Timo Sirainen <tss@iki.fi>
date Fri, 22 Aug 2003 06:34:03 +0300
parents 466ed9c67114
children cdf53841c4af
files src/auth/auth-master-connection.c src/lib-auth/auth-client.c src/lib-auth/auth-server-connection.c src/login-common/main.c src/login-common/master.c
diffstat 5 files changed, 15 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/auth-master-connection.c	Fri Aug 22 06:14:45 2003 +0300
+++ b/src/auth/auth-master-connection.c	Fri Aug 22 06:34:03 2003 +0300
@@ -144,9 +144,6 @@
 		master_send_reply(conn, &failure_reply, sizeof(failure_reply),
 				  request->tag);
 	} else {
-		/* the auth request is finished, we don't need it anymore */
-		mech_request_free(client_conn, auth_request, request->id);
-
 		master_request = i_new(struct master_userdb_request, 1);
 		master_request->conn = conn;
 		master_request->tag = request->tag;
@@ -154,6 +151,9 @@
 		conn->refcount++;
 		userdb->lookup(auth_request->user, userdb_callback,
 			       master_request);
+
+		/* the auth request is finished, we don't need it anymore */
+		mech_request_free(client_conn, auth_request, request->id);
 	}
 }
 
--- a/src/lib-auth/auth-client.c	Fri Aug 22 06:14:45 2003 +0300
+++ b/src/lib-auth/auth-client.c	Fri Aug 22 06:34:03 2003 +0300
@@ -105,7 +105,9 @@
 		client->to_reconnect = NULL;
 	}
 
-	client->connect_notify_callback(client,
-					auth_client_is_connected(client),
-					client->connect_notify_context);
+	if (client->connect_notify_callback != NULL) {
+		client->connect_notify_callback(client,
+				auth_client_is_connected(client),
+				client->connect_notify_context);
+	}
 }
--- a/src/lib-auth/auth-server-connection.c	Fri Aug 22 06:14:45 2003 +0300
+++ b/src/lib-auth/auth-server-connection.c	Fri Aug 22 06:34:03 2003 +0300
@@ -44,7 +44,8 @@
         conn->client->conn_waiting_handshake_count--;
 	update_available_auth_mechs(conn->client);
 
-	if (auth_client_is_connected(conn->client)) {
+	if (conn->client->connect_notify_callback != NULL &&
+	    auth_client_is_connected(conn->client)) {
 		conn->client->connect_notify_callback(conn->client, TRUE,
 				conn->client->connect_notify_context);
 	}
@@ -187,7 +188,7 @@
 
 	if (reconnect)
 		auth_client_connect_missing_servers(client);
-	else {
+	else if (client->connect_notify_callback != NULL) {
 		client->connect_notify_callback(client,
 				auth_client_is_connected(client),
 				client->connect_notify_context);
--- a/src/login-common/main.c	Fri Aug 22 06:14:45 2003 +0300
+++ b/src/login-common/main.c	Fri Aug 22 06:34:03 2003 +0300
@@ -148,7 +148,6 @@
 	/* Refuse to run as root - we should never need it and it's
 	   dangerous with SSL. */
 	restrict_access_by_env(TRUE);
-	sleep(5);
 
 	/* make sure we can't fork() */
 	restrict_process_size((unsigned int)-1, 1);
--- a/src/login-common/master.c	Fri Aug 22 06:14:45 2003 +0300
+++ b/src/login-common/master.c	Fri Aug 22 06:34:03 2003 +0300
@@ -29,7 +29,9 @@
 	if (client == NULL)
 		i_fatal("Master sent reply with unknown tag %u", reply->tag);
 
+	client->master_tag = 0;
 	client->master_callback(client, reply->success);
+	client->master_callback = NULL;
 
 	hash_remove(master_requests, POINTER_CAST(reply->tag));
 }
@@ -60,10 +62,10 @@
 
 void master_request_abort(struct client *client)
 {
+	hash_remove(master_requests, POINTER_CAST(client->master_tag));
+
 	client->master_tag = 0;
 	client->master_callback = NULL;
-
-	hash_remove(master_requests, POINTER_CAST(client->master_tag));
 }
 
 void master_notify_finished(void)