Browse Source

stop abusing SYNC_* for what really should be COPY_*

wip/maildir-path-under-inbox
Oswald Buddenhagen 3 years ago
parent
commit
ffb290084a
  1. 39
      src/sync.c
  2. 2
      src/sync.h

39
src/sync.c

@ -80,6 +80,13 @@ sanitize_flags( uchar tflags, sync_vars_t *svars, int t )
} }
enum {
COPY_OK,
COPY_NOGOOD,
COPY_CANCELED,
COPY_FAIL,
};
static void msg_fetched( int sts, void *aux ); static void msg_fetched( int sts, void *aux );
static void static void
@ -108,7 +115,7 @@ msg_fetched( int sts, void *aux )
INIT_SVARS(vars->aux); INIT_SVARS(vars->aux);
if (check_cancel( svars )) { if (check_cancel( svars )) {
free( vars->data.data ); free( vars->data.data );
vars->cb( SYNC_CANCELED, 0, vars ); vars->cb( COPY_CANCELED, 0, vars );
return; return;
} }
@ -138,7 +145,7 @@ msg_fetched( int sts, void *aux )
const char *err; const char *err;
if ((err = copy_msg_convert( scr, tcr, vars ))) { if ((err = copy_msg_convert( scr, tcr, vars ))) {
warn( "Warning: message %u from %s %s; skipping.\n", vars->msg->uid, str_fn[t^1], err ); warn( "Warning: message %u from %s %s; skipping.\n", vars->msg->uid, str_fn[t^1], err );
vars->cb( SYNC_NOGOOD, 0, vars ); vars->cb( COPY_NOGOOD, 0, vars );
return; return;
} }
} }
@ -146,13 +153,13 @@ msg_fetched( int sts, void *aux )
svars->drv[t]->store_msg( svars->ctx[t], &vars->data, !srec, msg_stored, vars ); svars->drv[t]->store_msg( svars->ctx[t], &vars->data, !srec, msg_stored, vars );
break; break;
case DRV_CANCELED: case DRV_CANCELED:
vars->cb( SYNC_CANCELED, 0, vars ); vars->cb( COPY_CANCELED, 0, vars );
break; break;
case DRV_MSG_BAD: case DRV_MSG_BAD:
vars->cb( SYNC_NOGOOD, 0, vars ); vars->cb( COPY_NOGOOD, 0, vars );
break; break;
default: // DRV_BOX_BAD default: // DRV_BOX_BAD
vars->cb( SYNC_FAIL, 0, vars ); vars->cb( COPY_FAIL, 0, vars );
break; break;
} }
} }
@ -165,20 +172,20 @@ msg_stored( int sts, uint uid, void *aux )
switch (sts) { switch (sts) {
case DRV_OK: case DRV_OK:
vars->cb( SYNC_OK, uid, vars ); vars->cb( COPY_OK, uid, vars );
break; break;
case DRV_CANCELED: case DRV_CANCELED:
vars->cb( SYNC_CANCELED, 0, vars ); vars->cb( COPY_CANCELED, 0, vars );
break; break;
case DRV_MSG_BAD: case DRV_MSG_BAD:
INIT_SVARS(vars->aux); INIT_SVARS(vars->aux);
(void)svars; (void)svars;
warn( "Warning: %s refuses to store message %u from %s.\n", warn( "Warning: %s refuses to store message %u from %s.\n",
str_fn[t], vars->msg->uid, str_fn[t^1] ); str_fn[t], vars->msg->uid, str_fn[t^1] );
vars->cb( SYNC_NOGOOD, 0, vars ); vars->cb( COPY_NOGOOD, 0, vars );
break; break;
default: // DRV_BOX_BAD default: // DRV_BOX_BAD
vars->cb( SYNC_FAIL, 0, vars ); vars->cb( COPY_FAIL, 0, vars );
break; break;
} }
} }
@ -265,7 +272,7 @@ check_ret( int sts, void *aux )
DECL_INIT_SVARS(vars->aux) DECL_INIT_SVARS(vars->aux)
#define SVARS_CHECK_CANCEL_RET \ #define SVARS_CHECK_CANCEL_RET \
if (sts == SYNC_CANCELED) { \ if (sts == COPY_CANCELED) { \
free( vars ); \ free( vars ); \
return; \ return; \
} \ } \
@ -1390,17 +1397,17 @@ msg_copied( int sts, uint uid, copy_vars_t *vars )
SVARS_CHECK_CANCEL_RET; SVARS_CHECK_CANCEL_RET;
sync_rec_t *srec = vars->srec; sync_rec_t *srec = vars->srec;
switch (sts) { switch (sts) {
case SYNC_OK: case COPY_OK:
if (!uid) // Stored to a non-UIDPLUS mailbox if (!uid) // Stored to a non-UIDPLUS mailbox
svars->state[t] |= ST_FIND_NEW; svars->state[t] |= ST_FIND_NEW;
else else
ASSIGN_UID( srec, t, uid, "%sed message", str_hl[t] ); ASSIGN_UID( srec, t, uid, "%sed message", str_hl[t] );
break; break;
case SYNC_NOGOOD: case COPY_NOGOOD:
srec->status = S_DEAD; srec->status = S_DEAD;
JLOG( "- %u %u", (srec->uid[F], srec->uid[N]), "%s failed", str_hl[t] ); JLOG( "- %u %u", (srec->uid[F], srec->uid[N]), "%s failed", str_hl[t] );
break; break;
default: default: // COPY_FAIL
cancel_sync( svars ); cancel_sync( svars );
free( vars ); free( vars );
return; return;
@ -1716,10 +1723,10 @@ msg_rtrashed( int sts, uint uid ATTR_UNUSED, copy_vars_t *vars )
{ {
SVARS_CHECK_CANCEL_RET; SVARS_CHECK_CANCEL_RET;
switch (sts) { switch (sts) {
case SYNC_OK: case COPY_OK:
case SYNC_NOGOOD: /* the message is gone or heavily busted */ case COPY_NOGOOD: /* the message is gone or heavily busted */
break; break;
default: default: // COPY_FAIL
cancel_sync( svars ); cancel_sync( svars );
free( vars ); free( vars );
return; return;

2
src/sync.h

@ -84,8 +84,6 @@ extern const char *str_fn[2], *str_hl[2];
#define SYNC_OK 0 /* assumed to be 0 */ #define SYNC_OK 0 /* assumed to be 0 */
#define SYNC_FAIL 1 #define SYNC_FAIL 1
#define SYNC_BAD(fn) (4<<(fn)) #define SYNC_BAD(fn) (4<<(fn))
#define SYNC_NOGOOD 16 /* internal */
#define SYNC_CANCELED 32 /* internal */
#define BOX_POSSIBLE -1 #define BOX_POSSIBLE -1
#define BOX_ABSENT 0 #define BOX_ABSENT 0

Loading…
Cancel
Save