comparison src/mail/ngx_mail_handler.c @ 1479:2647950e047f

optimizations
author Igor Sysoev <igor@sysoev.ru>
date Thu, 13 Sep 2007 21:24:27 +0000
parents 59e1caf2be94
children a231e37a19ab
comparison
equal deleted inserted replaced
1478:d0cce8369848 1479:2647950e047f
283 283
284 return NGX_OK; 284 return NGX_OK;
285 } 285 }
286 286
287 287
288 #if (NGX_MAIL_SSL)
289
290 ngx_int_t
291 ngx_mail_starttls_only(ngx_mail_session_t *s, ngx_connection_t *c)
292 {
293 ngx_mail_ssl_conf_t *sslcf;
294
295 if (c->ssl) {
296 return 0;
297 }
298
299 sslcf = ngx_mail_get_module_srv_conf(s, ngx_mail_ssl_module);
300
301 if (sslcf->starttls == NGX_MAIL_STARTTLS_ONLY) {
302 return 1;
303 }
304
305 return 0;
306 }
307
308 #endif
309
310
288 ngx_int_t 311 ngx_int_t
289 ngx_mail_auth_plain(ngx_mail_session_t *s, ngx_connection_t *c, ngx_uint_t n) 312 ngx_mail_auth_plain(ngx_mail_session_t *s, ngx_connection_t *c, ngx_uint_t n)
290 { 313 {
291 u_char *p, *last; 314 u_char *p, *last;
292 ngx_str_t *arg, plain; 315 ngx_str_t *arg, plain;
399 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0, 422 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0,
400 "mail auth login password: \"%V\"", &s->passwd); 423 "mail auth login password: \"%V\"", &s->passwd);
401 #endif 424 #endif
402 425
403 return NGX_DONE; 426 return NGX_DONE;
427 }
428
429
430 ngx_int_t
431 ngx_mail_auth_cram_md5_salt(ngx_mail_session_t *s, ngx_connection_t *c,
432 char *prefix, size_t len)
433 {
434 u_char *p;
435 ngx_str_t salt;
436 ngx_uint_t n;
437
438 p = ngx_palloc(c->pool, len + ngx_base64_encoded_length(s->salt.len) + 2);
439 if (p == NULL) {
440 return NGX_ERROR;
441 }
442
443 salt.data = ngx_cpymem(p, prefix, len);
444 s->salt.len -= 2;
445
446 ngx_encode_base64(&salt, &s->salt);
447
448 s->salt.len += 2;
449 n = len + salt.len;
450 p[n++] = CR; p[n++] = LF;
451
452 s->out.len = n;
453 s->out.data = p;
454
455 return NGX_OK;
404 } 456 }
405 457
406 458
407 ngx_int_t 459 ngx_int_t
408 ngx_mail_auth_cram_md5(ngx_mail_session_t *s, ngx_connection_t *c) 460 ngx_mail_auth_cram_md5(ngx_mail_session_t *s, ngx_connection_t *c)