|
@@ -112,6 +112,7 @@ typedef struct imap_store {
|
|
|
const char *prefix;
|
|
|
unsigned /*currentnc:1,*/ trashnc:1;
|
|
|
int uidnext; /* from SELECT responses */
|
|
|
+ unsigned got_namespace:1;
|
|
|
list_t *ns_personal, *ns_other, *ns_shared; /* NAMESPACE info */
|
|
|
message_t **msgapp; /* FETCH results */
|
|
|
unsigned caps, rcaps; /* CAPABILITY results */
|
|
@@ -1400,8 +1401,11 @@ imap_open_store( store_conf_t *conf )
|
|
|
ctx->prefix = conf->path;
|
|
|
else if (cfg->use_namespace && CAP(NAMESPACE)) {
|
|
|
/* get NAMESPACE info */
|
|
|
- if (imap_exec( ctx, 0, "NAMESPACE" ) != RESP_OK)
|
|
|
- goto bail;
|
|
|
+ if (!ctx->got_namespace) {
|
|
|
+ if (imap_exec( ctx, 0, "NAMESPACE" ) != RESP_OK)
|
|
|
+ goto bail;
|
|
|
+ ctx->got_namespace = 1;
|
|
|
+ }
|
|
|
/* XXX for now assume personal namespace */
|
|
|
if (is_list( ctx->ns_personal ) &&
|
|
|
is_list( ctx->ns_personal->child ) &&
|