isync

mailbox synchronization program
git clone https://git.code.sf.net/p/isync/isync
Log | Files | Refs | README | LICENSE

commit 7f1c6679106914873fd19d2b51274f500986c703
parent 0f1b2b646beb2639f73766f0e505000154892bbd
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date:   Fri, 26 Nov 2021 20:39:45 +0100

cache drivers' ability to handle crlf in mails

it's a cheap call, but it clutters up log files.

Diffstat:
Msrc/sync.c | 5+++--
Msrc/sync_p.h | 2+-
2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/sync.c b/src/sync.c @@ -291,8 +291,8 @@ msg_fetched( int sts, void *aux ) vars->msg->flags = vars->data.flags = sanitize_flags( vars->data.flags, svars, t ); - scr = (svars->drv[t^1]->get_caps( svars->ctx[t^1] ) / DRV_CRLF) & 1; - tcr = (svars->drv[t]->get_caps( svars->ctx[t] ) / DRV_CRLF) & 1; + scr = svars->can_crlf[t^1]; + tcr = svars->can_crlf[t]; if (vars->srec || scr != tcr) { if (!copy_msg_convert( scr, tcr, vars, t )) { vars->cb( SYNC_NOGOOD, 0, vars ); @@ -475,6 +475,7 @@ sync_boxes( store_t *ctx[], const char * const names[], int present[], channel_c } svars->drv[t] = ctx[t]->driver; svars->drv[t]->set_bad_callback( ctx[t], store_bad, AUX ); + svars->can_crlf[t] = (svars->drv[t]->get_caps( svars->ctx[t] ) / DRV_CRLF) & 1; } /* Both boxes must be fully set up at this point, so that error exit paths * don't run into uninitialized variables. */ diff --git a/src/sync_p.h b/src/sync_p.h @@ -61,7 +61,7 @@ typedef struct { uint newuidval[2]; // UID validity obtained from driver uint finduid[2]; // TUID lookup makes sense only for UIDs >= this uint maxxfuid; // highest expired UID on far side - uchar good_flags[2], bad_flags[2]; + uchar good_flags[2], bad_flags[2], can_crlf[2]; } sync_vars_t; int prepare_state( sync_vars_t *svars );