aboutsummaryrefslogtreecommitdiff
path: root/src/mail/ngx_mail_imap_handler.c
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2017-01-12 19:22:03 +0300
committerSergey Kandaurov <pluknet@nginx.com>2017-01-12 19:22:03 +0300
commitb5a3cc3781e95068cd8d0d8c84a7d8296b6682e6 (patch)
tree1807d2006e6a28379e45bc850494b1c1f1428a48 /src/mail/ngx_mail_imap_handler.c
parentb580770f3afaeec48a15cb8c9d2f9cf72b14e4da (diff)
downloadnginx-b5a3cc3781e95068cd8d0d8c84a7d8296b6682e6.tar.gz
nginx-b5a3cc3781e95068cd8d0d8c84a7d8296b6682e6.zip
Mail: make it possible to disable SASL EXTERNAL.
Diffstat (limited to 'src/mail/ngx_mail_imap_handler.c')
-rw-r--r--src/mail/ngx_mail_imap_handler.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mail/ngx_mail_imap_handler.c b/src/mail/ngx_mail_imap_handler.c
index 1c5445785..3bf09ec3c 100644
--- a/src/mail/ngx_mail_imap_handler.c
+++ b/src/mail/ngx_mail_imap_handler.c
@@ -356,6 +356,8 @@ ngx_mail_imap_authenticate(ngx_mail_session_t *s, ngx_connection_t *c)
}
#endif
+ iscf = ngx_mail_get_module_srv_conf(s, ngx_mail_imap_module);
+
rc = ngx_mail_auth_parse(s, c);
switch (rc) {
@@ -383,8 +385,6 @@ ngx_mail_imap_authenticate(ngx_mail_session_t *s, ngx_connection_t *c)
case NGX_MAIL_AUTH_CRAM_MD5:
- iscf = ngx_mail_get_module_srv_conf(s, ngx_mail_imap_module);
-
if (!(iscf->auth_methods & NGX_MAIL_AUTH_CRAM_MD5_ENABLED)) {
return NGX_MAIL_PARSE_INVALID_COMMAND;
}
@@ -406,6 +406,10 @@ ngx_mail_imap_authenticate(ngx_mail_session_t *s, ngx_connection_t *c)
case NGX_MAIL_AUTH_EXTERNAL:
+ if (!(iscf->auth_methods & NGX_MAIL_AUTH_EXTERNAL_ENABLED)) {
+ return NGX_MAIL_PARSE_INVALID_COMMAND;
+ }
+
ngx_str_set(&s->out, imap_username);
s->mail_state = ngx_imap_auth_external;