From 6f4cd030f8259e32cfe05a68a63f4f6b4fc030c1 Mon Sep 17 00:00:00 2001 From: Michael Elkins Date: Sat, 23 Dec 2000 21:57:06 +0000 Subject: [PATCH] don't use NAMESPACE unless the server supports it --- imap.c | 18 +++++++++--------- isync.h | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/imap.c b/imap.c index 7bcc2b2..e74f698 100644 --- a/imap.c +++ b/imap.c @@ -410,6 +410,8 @@ imap_exec (imap_t * imap, const char *fmt, ...) imap->have_starttls = 1; else if (!strcmp ("AUTH=CRAM-MD5", arg)) imap->have_cram = 1; + else if (!strcmp ("NAMESPACE", arg)) + imap->have_namespace = 1; } #endif } @@ -607,18 +609,16 @@ imap_open (config_t * box, unsigned int minuid) ret = imap_exec (imap, "LOGIN \"%s\" \"%s\"", box->user, box->pass); } - if (!ret) + /* get NAMESPACE info */ + if (!ret && box->use_namespace && imap->have_namespace && + !imap_exec (imap, "NAMESPACE")) { - /* get NAMESPACE info */ - if (box->use_namespace && !imap_exec (imap, "NAMESPACE")) - { - /* XXX for now assume personal namespace */ - if (is_list (imap->ns_personal) && + /* XXX for now assume personal namespace */ + if (is_list (imap->ns_personal) && is_list (imap->ns_personal->child) && is_atom (imap->ns_personal->child->child)) - { - ns_prefix = imap->ns_personal->child->child->val; - } + { + ns_prefix = imap->ns_personal->child->child->val; } } diff --git a/isync.h b/isync.h index 6fa2837..3a459fc 100644 --- a/isync.h +++ b/isync.h @@ -130,6 +130,7 @@ typedef struct list_t *ns_personal; list_t *ns_other; list_t *ns_shared; + unsigned int have_namespace:1; #if HAVE_LIBSSL unsigned int have_cram:1; unsigned int have_starttls:1;