Browse Source

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.
Oswald Buddenhagen 13 years ago
parent
commit
9554026443
4 changed files with 12 additions and 14 deletions
  1. 2 2
      src/drv_imap.c
  2. 2 2
      src/drv_maildir.c
  3. 1 1
      src/isync.h
  4. 7 9
      src/sync.c

+ 2 - 2
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

+ 2 - 2
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

+ 1 - 1
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 );
 };
 

+ 7 - 9
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 );