diff options
author | Igor Sysoev <igor@sysoev.ru> | 2007-09-14 15:00:19 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2007-09-14 15:00:19 +0000 |
commit | 945af2aac9a154b12d8087b629a6d35edc5415f2 (patch) | |
tree | fcc52845e226f9bd2d676f81100d25b188578c6b /src/mail/ngx_mail_imap_handler.c | |
parent | c95d44bb7301bacf0b7cd6015d26339d6997a935 (diff) | |
download | nginx-945af2aac9a154b12d8087b629a6d35edc5415f2.tar.gz nginx-945af2aac9a154b12d8087b629a6d35edc5415f2.zip |
create salt just before it will be used
Diffstat (limited to 'src/mail/ngx_mail_imap_handler.c')
-rw-r--r-- | src/mail/ngx_mail_imap_handler.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/mail/ngx_mail_imap_handler.c b/src/mail/ngx_mail_imap_handler.c index 97cd04f85..0c88d1a07 100644 --- a/src/mail/ngx_mail_imap_handler.c +++ b/src/mail/ngx_mail_imap_handler.c @@ -38,13 +38,6 @@ ngx_mail_imap_init_session(ngx_mail_session_t *s, ngx_connection_t *c) cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module); - if (cscf->imap_auth_methods & NGX_MAIL_AUTH_CRAM_MD5_ENABLED) { - if (ngx_mail_salt(s, c, cscf) != NGX_OK) { - ngx_mail_session_internal_server_error(s); - return; - } - } - s->out.len = sizeof(imap_greeting) - 1; s->out.data = imap_greeting; @@ -391,6 +384,12 @@ ngx_mail_imap_authenticate(ngx_mail_session_t *s, ngx_connection_t *c) return NGX_MAIL_PARSE_INVALID_COMMAND; } + if (s->salt.data == NULL) { + if (ngx_mail_salt(s, c, cscf) != NGX_OK) { + return NGX_ERROR; + } + } + if (ngx_mail_auth_cram_md5_salt(s, c, "+ ", 2) == NGX_OK) { s->mail_state = ngx_imap_auth_cram_md5; return NGX_OK; |