changeset 21899:d3f92c9be7d4

lib-imap-client: Add login_callback setter This way it can be set before actually calling login which might happen some time later.
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Wed, 05 Apr 2017 12:09:57 +0300
parents a0c4080f1005
children de92e4fbb7c9
files src/lib-imap-client/imapc-client-private.h src/lib-imap-client/imapc-client.c src/lib-imap-client/imapc-client.h
diffstat 3 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-imap-client/imapc-client-private.h	Tue Apr 04 23:33:51 2017 +0300
+++ b/src/lib-imap-client/imapc-client-private.h	Wed Apr 05 12:09:57 2017 +0300
@@ -23,6 +23,9 @@
 	imapc_state_change_callback_t *state_change_callback;
 	void *state_change_context;
 
+	imapc_command_callback_t *login_callback;
+	void *login_context;
+
 	ARRAY(struct imapc_client_connection *) conns;
 	bool logging_out;
 
--- a/src/lib-imap-client/imapc-client.c	Tue Apr 04 23:33:51 2017 +0300
+++ b/src/lib-imap-client/imapc-client.c	Wed Apr 05 12:09:57 2017 +0300
@@ -540,3 +540,12 @@
 	client->state_change_callback = cb;
 	client->state_change_context = context;
 }
+
+void
+imapc_client_set_login_callback(struct imapc_client *client,
+				imapc_command_callback_t *callback, void *context)
+{
+	client->login_callback = callback;
+	client->login_context  = context;
+}
+
--- a/src/lib-imap-client/imapc-client.h	Tue Apr 04 23:33:51 2017 +0300
+++ b/src/lib-imap-client/imapc-client.h	Wed Apr 05 12:09:57 2017 +0300
@@ -173,6 +173,10 @@
 void imapc_client_disconnect(struct imapc_client *client);
 void imapc_client_deinit(struct imapc_client **client);
 
+/* Set login callback, must be set before calling other commands */
+void
+imapc_client_set_login_callback(struct imapc_client *client,
+				imapc_command_callback_t *callback, void *context);
 /* Explicitly login to server (also done automatically). */
 void imapc_client_login(struct imapc_client *client,
 			imapc_command_callback_t *callback, void *context);