imap-sync.c revision 1b3bb8d39686ed24730cbc31cc9a33dc62c8c6c3
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen/* Copyright (C) 2002-2004 Timo Sirainen */
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainenimap_sync_init(struct client *client, struct mailbox *box,
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen ctx->sync_ctx = mailbox_sync_init(box, flags);
1b3bb8d39686ed24730cbc31cc9a33dc62c8c6c3Timo Sirainen ctx->t = mailbox_transaction_begin(box, FALSE);
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainenint imap_sync_deinit(struct imap_sync_context *ctx)
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen if (mailbox_sync_deinit(ctx->sync_ctx, &status) < 0 || ctx->failed) {
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen ctx->client->messages_count = status.messages;
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen t_strdup_printf("* %u EXISTS", status.messages));
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen if (status.recent != ctx->client->recent_count) {
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen t_strdup_printf("* %u RECENT", status.recent));
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen /*FIXME:client_save_keywords(&client->keywords, keywords, keywords_count);
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen client_send_mailbox_flags(client, mailbox, keywords, keywords_count);*/
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainenint imap_sync_more(struct imap_sync_context *ctx)
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen /* get next one */
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen for (; ctx->seq <= ctx->sync_rec.seq2; ctx->seq++) {
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen for (; ctx->seq >= ctx->sync_rec.seq1; ctx->seq--) {
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainenint imap_sync_nonselected(struct mailbox *box, enum mailbox_sync_flags flags)
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainenstatic int cmd_sync_continue(struct client *client)
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen struct cmd_sync_context *ctx = client->cmd_context;
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainenint cmd_sync(struct client *client, enum mailbox_sync_flags flags,
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen ctx = p_new(client->cmd_pool, struct cmd_sync_context, 1);
c4267cf4c40fb1f866b5958ff122ef836b8c5dfbTimo Sirainen ctx->tagline = p_strdup(client->cmd_pool, tagline);