Mercurial > hg > nginx
comparison src/mail/ngx_mail_smtp_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 | c788d2b877be |
children | 0e7074ef7303 |
comparison
equal
deleted
inserted
replaced
1484:c788d2b877be | 1485:b3488fc2675a |
---|---|
44 ngx_msec_t timeout; | 44 ngx_msec_t timeout; |
45 ngx_mail_core_srv_conf_t *cscf; | 45 ngx_mail_core_srv_conf_t *cscf; |
46 | 46 |
47 cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module); | 47 cscf = ngx_mail_get_module_srv_conf(s, ngx_mail_core_module); |
48 | 48 |
49 if (cscf->smtp_auth_methods & NGX_MAIL_AUTH_CRAM_MD5_ENABLED) { | |
50 if (ngx_mail_salt(s, c, cscf) != NGX_OK) { | |
51 ngx_mail_session_internal_server_error(s); | |
52 return; | |
53 } | |
54 } | |
55 | |
56 timeout = cscf->smtp_greeting_delay ? cscf->smtp_greeting_delay: | 49 timeout = cscf->smtp_greeting_delay ? cscf->smtp_greeting_delay: |
57 cscf->timeout; | 50 cscf->timeout; |
58 ngx_add_timer(c->read, timeout); | 51 ngx_add_timer(c->read, timeout); |
59 | 52 |
60 if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) { | 53 if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) { |
420 | 413 |
421 if (!(cscf->smtp_auth_methods & NGX_MAIL_AUTH_CRAM_MD5_ENABLED)) { | 414 if (!(cscf->smtp_auth_methods & NGX_MAIL_AUTH_CRAM_MD5_ENABLED)) { |
422 return NGX_MAIL_PARSE_INVALID_COMMAND; | 415 return NGX_MAIL_PARSE_INVALID_COMMAND; |
423 } | 416 } |
424 | 417 |
418 if (s->salt.data == NULL) { | |
419 if (ngx_mail_salt(s, c, cscf) != NGX_OK) { | |
420 return NGX_ERROR; | |
421 } | |
422 } | |
423 | |
425 if (ngx_mail_auth_cram_md5_salt(s, c, "334 ", 4) == NGX_OK) { | 424 if (ngx_mail_auth_cram_md5_salt(s, c, "334 ", 4) == NGX_OK) { |
426 s->mail_state = ngx_smtp_auth_cram_md5; | 425 s->mail_state = ngx_smtp_auth_cram_md5; |
427 return NGX_OK; | 426 return NGX_OK; |
428 } | 427 } |
429 | 428 |