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