commit 95540264434059be249acedf25206a163d400931
parent 57444e9df9020953c14eafa01cd48cb23e99947b
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date: Sun, 22 Jul 2012 17:32:32 +0200
make drv->cancel()'s callback have no status code
this function is not going to actually execute any commands, so it
makes no sense for the callback to have a status code.
Diffstat:
4 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/src/drv_imap.c b/src/drv_imap.c
@@ -1727,10 +1727,10 @@ imap_list( store_t *gctx,
static void
imap_cancel( store_t *gctx,
- void (*cb)( int sts, void *aux ), void *aux )
+ void (*cb)( void *aux ), void *aux )
{
(void)gctx;
- cb( DRV_OK, aux );
+ cb( aux );
}
static void
diff --git a/src/drv_maildir.c b/src/drv_maildir.c
@@ -1209,10 +1209,10 @@ maildir_close( store_t *gctx,
static void
maildir_cancel( store_t *gctx,
- void (*cb)( int sts, void *aux ), void *aux )
+ void (*cb)( void *aux ), void *aux )
{
(void)gctx;
- cb( DRV_OK, aux );
+ cb( aux );
}
static void
diff --git a/src/isync.h b/src/isync.h
@@ -210,7 +210,7 @@ struct driver {
int (*close)( store_t *ctx, /* IMAP-style: expunge inclusive */
int (*cb)( int sts, void *aux ), void *aux );
void (*cancel)( store_t *ctx, /* only not yet sent commands */
- void (*cb)( int sts, void *aux ), void *aux );
+ void (*cb)( void *aux ), void *aux );
void (*commit)( store_t *ctx );
};
diff --git a/src/sync.c b/src/sync.c
@@ -396,7 +396,7 @@ stats( sync_vars_t *svars )
static void sync_bail( sync_vars_t *svars );
static void sync_bail1( sync_vars_t *svars );
static void sync_bail2( sync_vars_t *svars );
-static void cancel_done( int sts, void *aux );
+static void cancel_done( void *aux );
static void
cancel_sync( sync_vars_t *svars )
@@ -405,21 +405,19 @@ cancel_sync( sync_vars_t *svars )
/* the 1st round is guaranteed not to trash svars */
for (t = 0; t < 2; t++)
- if (svars->ret & SYNC_BAD(t))
- cancel_done( DRV_STORE_BAD, AUX );
- else
+ if (svars->ret & SYNC_BAD(t)) {
+ svars->drv[t]->cancel_store( svars->ctx[t] );
+ cancel_done( AUX );
+ } else {
svars->drv[t]->cancel( svars->ctx[t], cancel_done, AUX );
+ }
}
static void
-cancel_done( int sts, void *aux )
+cancel_done( void *aux )
{
DECL_INIT_SVARS(aux);
- if (sts != DRV_OK) {
- svars->ret |= SYNC_BAD(t);
- svars->drv[t]->cancel_store( svars->ctx[t] );
- }
svars->state[t] |= ST_CANCELED;
if (svars->state[1-t] & ST_CANCELED) {
Fclose( svars->nfp );