Mercurial > hg > nginx
changeset 1485:b3488fc2675a
create salt just before it will be used
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 14 Sep 2007 15:00:19 +0000 |
parents | c788d2b877be |
children | 0e7074ef7303 |
files | src/mail/ngx_mail_imap_handler.c src/mail/ngx_mail_smtp_handler.c |
diffstat | 2 files changed, 12 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- 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_sess 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_sess 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;
--- a/src/mail/ngx_mail_smtp_handler.c +++ b/src/mail/ngx_mail_smtp_handler.c @@ -46,13 +46,6 @@ ngx_mail_smtp_init_session(ngx_mail_sess cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module); - if (cscf->smtp_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; - } - } - timeout = cscf->smtp_greeting_delay ? cscf->smtp_greeting_delay: cscf->timeout; ngx_add_timer(c->read, timeout); @@ -422,6 +415,12 @@ ngx_mail_smtp_auth(ngx_mail_session_t *s 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, "334 ", 4) == NGX_OK) { s->mail_state = ngx_smtp_auth_cram_md5; return NGX_OK;