]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fix
authorTimo Sirainen <tss@iki.fi>
Sun, 16 May 2004 01:37:32 +0000 (04:37 +0300)
committerTimo Sirainen <tss@iki.fi>
Sun, 16 May 2004 01:37:32 +0000 (04:37 +0300)
--HG--
branch : HEAD

src/pop3/client.c

index 6ac06372b33938aa700850ca094f7a38e7969233..1389d603e1b7962dfab49e6dfdc221c9e57483ec 100644 (file)
@@ -64,10 +64,9 @@ static int init_mailbox(struct client *client)
        memset(&search_arg, 0, sizeof(search_arg));
        search_arg.type = SEARCH_ALL;
 
-       t = mailbox_transaction_begin(client->mailbox, FALSE);
-
        client->message_sizes = i_new(uoff_t, client->messages_count);
        for (i = 0; i < 2; i++) {
+               t = mailbox_transaction_begin(client->mailbox, FALSE);
                ctx = mailbox_search_init(t, NULL, &search_arg, NULL,
                                          MAIL_FETCH_SIZE, NULL);
                if (ctx == NULL) {
@@ -104,6 +103,7 @@ static int init_mailbox(struct client *client)
                }
 
                /* well, sync and try again */
+               mailbox_transaction_rollback(t);
                if (mailbox_sync(client->mailbox, 0) < 0) {
                        client_send_storage_error(client);
                         mailbox_transaction_rollback(t);