]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-imap-client: Add login_callback setter
authorAki Tuomi <aki.tuomi@dovecot.fi>
Wed, 5 Apr 2017 09:09:57 +0000 (12:09 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 6 Apr 2017 17:20:53 +0000 (20:20 +0300)
This way it can be set before actually calling login
which might happen some time later.

src/lib-imap-client/imapc-client-private.h
src/lib-imap-client/imapc-client.c
src/lib-imap-client/imapc-client.h

index 2cb9beb51211176472fe585cc39fd07441f8205e..6efe17dadda7c64128261a2a29d05230a6e97301 100644 (file)
@@ -23,6 +23,9 @@ struct imapc_client {
        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;
 
index d210ece43c42525a4d00a61ef230a174ba10f8ff..b904870d89b720efb0681908e008eeab8f3e43dd 100644 (file)
@@ -540,3 +540,12 @@ void imapc_client_register_state_change_callback(struct imapc_client *client,
        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;
+}
+
index 0df40ef733cd6c2e92a450c53475955fb566acd0..e001ba37160baef7cdee25a0f80312d755fb4761 100644 (file)
@@ -173,6 +173,10 @@ imapc_client_init(const struct imapc_client_settings *set);
 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);