Mercurial > hg > nginx
comparison src/mail/ngx_mail_imap_handler.c @ 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 | 4606dce4f416 |
children | 0e7074ef7303 |
comparison
equal
deleted
inserted
replaced
1484:c788d2b877be | 1485:b3488fc2675a |
---|---|
36 { | 36 { |
37 ngx_mail_core_srv_conf_t *cscf; | 37 ngx_mail_core_srv_conf_t *cscf; |
38 | 38 |
39 cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module); | 39 cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module); |
40 | 40 |
41 if (cscf->imap_auth_methods & NGX_MAIL_AUTH_CRAM_MD5_ENABLED) { | |
42 if (ngx_mail_salt(s, c, cscf) != NGX_OK) { | |
43 ngx_mail_session_internal_server_error(s); | |
44 return; | |
45 } | |
46 } | |
47 | |
48 s->out.len = sizeof(imap_greeting) - 1; | 41 s->out.len = sizeof(imap_greeting) - 1; |
49 s->out.data = imap_greeting; | 42 s->out.data = imap_greeting; |
50 | 43 |
51 c->read->handler = ngx_mail_imap_init_protocol; | 44 c->read->handler = ngx_mail_imap_init_protocol; |
52 | 45 |
389 | 382 |
390 if (!(cscf->imap_auth_methods & NGX_MAIL_AUTH_CRAM_MD5_ENABLED)) { | 383 if (!(cscf->imap_auth_methods & NGX_MAIL_AUTH_CRAM_MD5_ENABLED)) { |
391 return NGX_MAIL_PARSE_INVALID_COMMAND; | 384 return NGX_MAIL_PARSE_INVALID_COMMAND; |
392 } | 385 } |
393 | 386 |
387 if (s->salt.data == NULL) { | |
388 if (ngx_mail_salt(s, c, cscf) != NGX_OK) { | |
389 return NGX_ERROR; | |
390 } | |
391 } | |
392 | |
394 if (ngx_mail_auth_cram_md5_salt(s, c, "+ ", 2) == NGX_OK) { | 393 if (ngx_mail_auth_cram_md5_salt(s, c, "+ ", 2) == NGX_OK) { |
395 s->mail_state = ngx_imap_auth_cram_md5; | 394 s->mail_state = ngx_imap_auth_cram_md5; |
396 return NGX_OK; | 395 return NGX_OK; |
397 } | 396 } |
398 | 397 |