commit ef0e7fdd3e921d612220a830436bb9862bca61ac Author: Oswald Buddenhagen <o...@users.sf.net> Date: Sun Dec 4 11:23:47 2016 +0100
accept NAMESPACE responses without hierarchy delimiter RFC2342 states that the delimiter may be NIL, which some servers apparently actually make use of. REFMAIL: CAM0xXk_FQ83CPrd37iQCMKtc1B2P8=u-r5jx0n2we5y+348...@mail.gmail.com src/drv_imap.c | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/drv_imap.c b/src/drv_imap.c index f15bc5b..83b0358 100644 --- a/src/drv_imap.c +++ b/src/drv_imap.c @@ -638,6 +638,12 @@ next_arg( char **ps ) } static int +is_opt_atom( list_t *list ) +{ + return list && list->val && list->val != LIST; +} + +static int is_atom( list_t *list ) { return list && list->val && list->val != NIL && list->val != LIST; @@ -850,7 +856,7 @@ parse_namespace_check( list_t *list ) goto bad; if (!is_atom( list->child )) goto bad; - if (!is_atom( list->child->next )) + if (!is_opt_atom( list->child->next )) goto bad; /* Namespace response extensions may follow here; we don't care. */ } @@ -2147,17 +2153,17 @@ static void imap_open_store_namespace2( imap_store_t *ctx ) { imap_store_conf_t *cfg = (imap_store_conf_t *)ctx->gen.conf; - list_t *nsp, *nsp_1st, *nsp_1st_ns, *nsp_1st_dl; + list_t *nsp, *nsp_1st; /* XXX for now assume 1st personal namespace */ if (is_list( (nsp = ctx->ns_personal) ) && - is_list( (nsp_1st = nsp->child) ) && - is_atom( (nsp_1st_ns = nsp_1st->child) ) && - is_atom( (nsp_1st_dl = nsp_1st_ns->next) )) + is_list( (nsp_1st = nsp->child) )) { + list_t *nsp_1st_ns = nsp_1st->child; + list_t *nsp_1st_dl = nsp_1st_ns->next; if (!ctx->prefix && cfg->use_namespace) ctx->prefix = nsp_1st_ns->val; - if (!ctx->delimiter) + if (!ctx->delimiter && is_atom( nsp_1st_dl )) ctx->delimiter = nfstrdup( nsp_1st_dl->val ); } imap_open_store_finalize( ctx ); ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ isync-devel mailing list isync-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/isync-devel