add DisableExtension option to work around (server) bugs
This commit is contained in:
parent
549e6739e8
commit
b8d6d833c6
|
@ -53,6 +53,7 @@ typedef struct imap_server_conf {
|
||||||
char *pass;
|
char *pass;
|
||||||
char *pass_cmd;
|
char *pass_cmd;
|
||||||
int max_in_progress;
|
int max_in_progress;
|
||||||
|
int cap_mask;
|
||||||
string_list_t *auth_mechs;
|
string_list_t *auth_mechs;
|
||||||
#ifdef HAVE_LIBSSL
|
#ifdef HAVE_LIBSSL
|
||||||
char ssl_type;
|
char ssl_type;
|
||||||
|
@ -1043,6 +1044,7 @@ parse_capability( imap_store_t *ctx, char *cmd )
|
||||||
ctx->caps |= 1 << i;
|
ctx->caps |= 1 << i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ctx->caps &= ~((imap_store_conf_t *)ctx->gen.conf)->server->cap_mask;
|
||||||
if (!CAP(NOLOGIN))
|
if (!CAP(NOLOGIN))
|
||||||
add_string_list( &ctx->auth_mechs, "LOGIN" );
|
add_string_list( &ctx->auth_mechs, "LOGIN" );
|
||||||
}
|
}
|
||||||
|
@ -2687,6 +2689,7 @@ imap_parse_store( conffile_t *cfg, store_conf_t **storep )
|
||||||
imap_store_conf_t *store;
|
imap_store_conf_t *store;
|
||||||
imap_server_conf_t *server, *srv, sserver;
|
imap_server_conf_t *server, *srv, sserver;
|
||||||
const char *type, *name, *arg;
|
const char *type, *name, *arg;
|
||||||
|
unsigned u;
|
||||||
int acc_opt = 0;
|
int acc_opt = 0;
|
||||||
#ifdef HAVE_LIBSSL
|
#ifdef HAVE_LIBSSL
|
||||||
/* Legacy SSL options */
|
/* Legacy SSL options */
|
||||||
|
@ -2756,6 +2759,20 @@ imap_parse_store( conffile_t *cfg, store_conf_t **storep )
|
||||||
error( "%s:%d: PipelineDepth must be at least 1\n", cfg->file, cfg->line );
|
error( "%s:%d: PipelineDepth must be at least 1\n", cfg->file, cfg->line );
|
||||||
cfg->err = 1;
|
cfg->err = 1;
|
||||||
}
|
}
|
||||||
|
} else if (!strcasecmp( "DisableExtension", cfg->cmd ) ||
|
||||||
|
!strcasecmp( "DisableExtensions", cfg->cmd )) {
|
||||||
|
arg = cfg->val;
|
||||||
|
do {
|
||||||
|
for (u = 0; u < as(cap_list); u++) {
|
||||||
|
if (!strcasecmp( cap_list[u], arg )) {
|
||||||
|
server->cap_mask |= 1 << u;
|
||||||
|
goto gotcap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
error( "%s:%d: Unrecognized IMAP extension '%s'\n", cfg->file, cfg->line, arg );
|
||||||
|
cfg->err = 1;
|
||||||
|
gotcap: ;
|
||||||
|
} while ((arg = get_arg( cfg, ARG_OPTIONAL, 0 )));
|
||||||
}
|
}
|
||||||
#ifdef HAVE_LIBSSL
|
#ifdef HAVE_LIBSSL
|
||||||
else if (!strcasecmp( "CertificateFile", cfg->cmd )) {
|
else if (!strcasecmp( "CertificateFile", cfg->cmd )) {
|
||||||
|
|
10
src/mbsync.1
10
src/mbsync.1
|
@ -384,6 +384,13 @@ Setting this to \fI1\fR disables pipelining.
|
||||||
This is mostly a debugging only option.
|
This is mostly a debugging only option.
|
||||||
(Default: \fIunlimited\fR)
|
(Default: \fIunlimited\fR)
|
||||||
..
|
..
|
||||||
|
.TP
|
||||||
|
\fBDisableExtension\fR[\fBs\fR] \fIextension\fR ...
|
||||||
|
Disable the use of specific IMAP extensions.
|
||||||
|
This can be used to work around bugs in servers
|
||||||
|
(and possibly \fBmbsync\fR itself).
|
||||||
|
(Default: empty)
|
||||||
|
..
|
||||||
.SS IMAP Stores
|
.SS IMAP Stores
|
||||||
The reference point for relative \fBPath\fRs is whatever the server likes it
|
The reference point for relative \fBPath\fRs is whatever the server likes it
|
||||||
to be; probably the user's $HOME or $HOME/Mail on that server. The location
|
to be; probably the user's $HOME or $HOME/Mail on that server. The location
|
||||||
|
@ -679,6 +686,9 @@ If your server supports auto-trashing (as Gmail does), it is probably a
|
||||||
good idea to rely on that instead of \fBmbsync\fR's trash functionality.
|
good idea to rely on that instead of \fBmbsync\fR's trash functionality.
|
||||||
If you do that, and intend to synchronize the trash like other mailboxes,
|
If you do that, and intend to synchronize the trash like other mailboxes,
|
||||||
you should not use \fBmbsync\fR's \fBTrash\fR option at all.
|
you should not use \fBmbsync\fR's \fBTrash\fR option at all.
|
||||||
|
.P
|
||||||
|
Use of the \fBTrash\fR option with M$ Exchange 2013 requires the use of
|
||||||
|
\fBDisableExtension MOVE\fR due to a server bug.
|
||||||
..
|
..
|
||||||
.SH INHERENT PROBLEMS
|
.SH INHERENT PROBLEMS
|
||||||
Changes done after \fBmbsync\fR has retrieved the message list will not be
|
Changes done after \fBmbsync\fR has retrieved the message list will not be
|
||||||
|
|
Loading…
Reference in New Issue
Block a user