commit a7ab3251581340e28ad72941247afc00a149deca
Author: Oswald Buddenhagen <o...@kde.org>
Date:   Sun Jul 22 17:32:32 2012 +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.

 src/drv_imap.c    |    4 ++--
 src/drv_maildir.c |    4 ++--
 src/isync.h       |    2 +-
 src/sync.c        |   16 +++++++---------
 4 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/src/drv_imap.c b/src/drv_imap.c
index fad6eb7..e60a3f1 100644
--- 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
index 020da73..48474fc 100644
--- 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
index 7f05796..c831b77 100644
--- 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
index a1f5373..f4315b3 100644
--- 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 );

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel

Reply via email to