Skipped 2 existing revision(s) on branch 'master'.
commit 062706fcbf39bcee536ea4b5c690e2f30e122faa
Merge: fc300fd e4eac03
Author: Oswald Buddenhagen <[email protected]>
Date: Wed Feb 3 15:53:05 2021 +0100
Merge branch '1.3'
Conflicts:
configure.ac
src/drv_imap.c
src/drv_imap.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --cc src/drv_imap.c
index 8d7c99b,810479e..9f23e08
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@@ -1381,14 -1266,16 +1381,15 @@@ parse_list_rsp_p2( imap_store_t *ctx, l
return LIST_BAD;
}
arg = list->val;
- argl = list->len;
+ argl = (int)list->len;
- if (is_inbox( ctx, arg, argl )) {
- // The server might be weird and have a non-uppercase INBOX. It
- // may legitimately do so, but we need the canonical spelling.
- memcpy( arg, "INBOX", 5 );
- } else if ((l = strlen( ctx->prefix ))) {
- if (!starts_with( arg, argl, ctx->prefix, l ))
+ if ((l = strlen( ctx->prefix ))) {
+ if (!starts_with( arg, argl, ctx->prefix, l )) {
+ if (is_inbox( ctx, arg, argl )) {
+ // INBOX and its subfolders bypass the
namespace.
+ goto inbox;
+ }
- goto skip;
+ return LIST_OK;
+ }
arg += l;
argl -= l;
// A folder named "INBOX" would be indistinguishable from the
@@@ -1398,14 -1285,22 +1399,22 @@@
if (is_INBOX( ctx, arg, argl )) {
if (!arg[5]) // No need to complain about subfolders
as well.
warn( "IMAP warning: ignoring INBOX in %s\n",
ctx->prefix );
- goto skip;
+ return LIST_OK;
}
+ } else if (is_inbox( ctx, arg, argl )) {
+ inbox:
+ // The server might be weird and have a non-uppercase INBOX. It
+ // may legitimately do so, but we need the canonical spelling.
+ // Note that we do that only after prefix matching, under the
+ // assumption that the NAMESPACE (or Path) matches the
+ // capitalization of LIST.
+ memcpy( arg, "INBOX", 5 );
}
if (argl >= 5 && !memcmp( arg + argl - 5, ".lock", 5 )) /* workaround
broken servers */
- goto skip;
+ return LIST_OK;
if (map_name( arg, (char **)&narg, offsetof(string_list_t, string),
ctx->delimiter, "/") < 0) {
warn( "IMAP warning: ignoring mailbox %s (reserved character
'/' in name)\n", arg );
- goto skip;
+ return LIST_OK;
}
narg->next = ctx->boxes;
ctx->boxes = narg;
===== Full diff against 1st parent =====
diff --git a/src/drv_imap.c b/src/drv_imap.c
index 8d7c99b..9f23e08 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -1382,13 +1382,14 @@ parse_list_rsp_p2( imap_store_t *ctx, list_t *list,
char *cmd ATTR_UNUSED )
}
arg = list->val;
argl = (int)list->len;
- if (is_inbox( ctx, arg, argl )) {
- // The server might be weird and have a non-uppercase INBOX. It
- // may legitimately do so, but we need the canonical spelling.
- memcpy( arg, "INBOX", 5 );
- } else if ((l = strlen( ctx->prefix ))) {
- if (!starts_with( arg, argl, ctx->prefix, l ))
+ if ((l = strlen( ctx->prefix ))) {
+ if (!starts_with( arg, argl, ctx->prefix, l )) {
+ if (is_inbox( ctx, arg, argl )) {
+ // INBOX and its subfolders bypass the
namespace.
+ goto inbox;
+ }
return LIST_OK;
+ }
arg += l;
argl -= l;
// A folder named "INBOX" would be indistinguishable from the
@@ -1400,6 +1401,14 @@ parse_list_rsp_p2( imap_store_t *ctx, list_t *list, char
*cmd ATTR_UNUSED )
warn( "IMAP warning: ignoring INBOX in %s\n",
ctx->prefix );
return LIST_OK;
}
+ } else if (is_inbox( ctx, arg, argl )) {
+ inbox:
+ // The server might be weird and have a non-uppercase INBOX. It
+ // may legitimately do so, but we need the canonical spelling.
+ // Note that we do that only after prefix matching, under the
+ // assumption that the NAMESPACE (or Path) matches the
+ // capitalization of LIST.
+ memcpy( arg, "INBOX", 5 );
}
if (argl >= 5 && !memcmp( arg + argl - 5, ".lock", 5 )) /* workaround
broken servers */
return LIST_OK;
_______________________________________________
isync-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/isync-devel