diff src/imap-login/client-authenticate.c @ 1714:96dab004a87a HEAD

fixes. maybe it works now.
author Timo Sirainen <tss@iki.fi>
date Fri, 22 Aug 2003 21:56:59 +0300
parents 43815588dd6b
children cc0690f92d96
line wrap: on
line diff
--- a/src/imap-login/client-authenticate.c	Fri Aug 22 18:40:12 2003 +0300
+++ b/src/imap-login/client-authenticate.c	Fri Aug 22 21:56:59 2003 +0300
@@ -80,6 +80,8 @@
 		io_remove(client->common.io);
 	client->common.io = client->common.fd == -1 ? NULL :
 		io_add(client->common.fd, IO_READ, client_input, client);
+
+	client_unref(client);
 }
 
 static void master_callback(struct client *_client, int success)
@@ -146,6 +148,7 @@
 		   disconnect the client. */
                 client->authenticating = FALSE;
 		client_send_tagline(client, "OK Logged in.");
+		client_unref(client);
 	}
 }
 
@@ -181,6 +184,7 @@
 	buffer_append_c(client->plain_login, '\0');
 	buffer_append(client->plain_login, pass, strlen(pass));
 
+	client_ref(client);
 	client->common.auth_request =
 		auth_client_request_new(auth_client, AUTH_MECH_PLAIN,
 					AUTH_PROTOCOL_IMAP, login_callback,
@@ -188,6 +192,7 @@
 	if (client->common.auth_request == NULL) {
 		client_send_tagline(client, t_strconcat(
 			"NO Login failed: ", error, NULL));
+		client_unref(client);
 		return TRUE;
 	}
 
@@ -224,6 +229,7 @@
 		   disconnect the client. */
                 client->authenticating = FALSE;
 		client_send_tagline(client, "OK Logged in.");
+		client_unref(client);
 	}
 }
 
@@ -304,6 +310,7 @@
 		return TRUE;
 	}
 
+	client_ref(client);
 	client->common.auth_request =
 		auth_client_request_new(auth_client, mech->mech,
 					AUTH_PROTOCOL_IMAP,
@@ -319,6 +326,7 @@
 	} else {
 		client_send_tagline(client, t_strconcat(
 			"NO Authentication failed: ", error, NULL));
+		client_unref(client);
 	}
 
 	return TRUE;