]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-imap-client: Make command tag counter externally accessible
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 10 Apr 2017 13:18:46 +0000 (16:18 +0300)
committerGitLab <gitlab@git.dovecot.net>
Mon, 10 Apr 2017 14:52:43 +0000 (17:52 +0300)
This allows unit tests to reset it.

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

index ce809f0bc41a2f80bb54de1cb68beb9bcd9e752f..96e780a5fecfb21792b87480cdaa31328b777c77 100644 (file)
@@ -49,6 +49,8 @@ struct imapc_client_mailbox {
        bool closing;
 };
 
+extern unsigned int imapc_client_cmd_tag_counter;
+
 void imapc_client_ref(struct imapc_client *client);
 void imapc_client_unref(struct imapc_client **client);
 
index 874acd509b7b2c02b85db49aeb96fd67c86b8a39..ed0c8e4719f9f2d952eef62cab8bf6ac1efbbc53 100644 (file)
@@ -31,6 +31,8 @@ const struct imapc_capability_name imapc_capability_names[] = {
        { NULL, 0 }
 };
 
+unsigned int imapc_client_cmd_tag_counter = 0;
+
 static void
 default_untagged_callback(const struct imapc_untagged_reply *reply ATTR_UNUSED,
                          void *context ATTR_UNUSED)
index 00a30c67add1a3bfd2ef6853f1cec3a21b37db2d..bba6a4b005a27754e1df5ca9d30e2ce2393bb60f 100644 (file)
@@ -1871,7 +1871,6 @@ void imapc_connection_input_pending(struct imapc_connection *conn)
 static struct imapc_command *
 imapc_command_begin(imapc_command_callback_t *callback, void *context)
 {
-       static unsigned int cmd_tag_counter = 0;
        struct imapc_command *cmd;
        pool_t pool;
 
@@ -1883,9 +1882,11 @@ imapc_command_begin(imapc_command_callback_t *callback, void *context)
        cmd->callback = callback;
        cmd->context = context;
 
-       if (++cmd_tag_counter == 0)
-               cmd_tag_counter++;
-       cmd->tag = cmd_tag_counter;
+       /* use a globally unique tag counter so looking at rawlogs is
+          somewhat easier */
+       if (++imapc_client_cmd_tag_counter == 0)
+               imapc_client_cmd_tag_counter++;
+       cmd->tag = imapc_client_cmd_tag_counter;
        return cmd;
 }