comparison src/mail/ngx_mail_handler.c @ 382:984bb0b1399b NGINX_0_7_3

nginx 0.7.3 *) Change: the "rss" extension MIME type has been changed to "application/rss+xml". *) Change: now the "gzip_vary" directive turned on issues a "Vary: Accept-Encoding" header line for uncompressed responses too. *) Feature: now the "rewrite" directive does a redirect automatically if the "https://" protocol is used. *) Bugfix: the "proxy_pass" directive did not work with the HTTPS protocol; the bug had appeared in 0.6.9.
author Igor Sysoev <http://sysoev.ru>
date Mon, 23 Jun 2008 00:00:00 +0400
parents b743d290eb3b
children 05981f639d21
comparison
equal deleted inserted replaced
381:23d1555141d9 382:984bb0b1399b
234 234
235 ngx_int_t 235 ngx_int_t
236 ngx_mail_salt(ngx_mail_session_t *s, ngx_connection_t *c, 236 ngx_mail_salt(ngx_mail_session_t *s, ngx_connection_t *c,
237 ngx_mail_core_srv_conf_t *cscf) 237 ngx_mail_core_srv_conf_t *cscf)
238 { 238 {
239 s->salt.data = ngx_palloc(c->pool, 239 s->salt.data = ngx_pnalloc(c->pool,
240 sizeof(" <18446744073709551616.@>" CRLF) - 1 240 sizeof(" <18446744073709551616.@>" CRLF) - 1
241 + NGX_TIME_T_LEN 241 + NGX_TIME_T_LEN
242 + cscf->server_name.len); 242 + cscf->server_name.len);
243 if (s->salt.data == NULL) { 243 if (s->salt.data == NULL) {
244 return NGX_ERROR; 244 return NGX_ERROR;
245 } 245 }
246 246
247 s->salt.len = ngx_sprintf(s->salt.data, "<%ul.%T@%V>" CRLF, 247 s->salt.len = ngx_sprintf(s->salt.data, "<%ul.%T@%V>" CRLF,
286 #if (NGX_DEBUG_MAIL_PASSWD) 286 #if (NGX_DEBUG_MAIL_PASSWD)
287 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0, 287 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0,
288 "mail auth plain: \"%V\"", &arg[n]); 288 "mail auth plain: \"%V\"", &arg[n]);
289 #endif 289 #endif
290 290
291 plain.data = ngx_palloc(c->pool, ngx_base64_decoded_length(arg[n].len)); 291 plain.data = ngx_pnalloc(c->pool, ngx_base64_decoded_length(arg[n].len));
292 if (plain.data == NULL){ 292 if (plain.data == NULL){
293 return NGX_ERROR; 293 return NGX_ERROR;
294 } 294 }
295 295
296 if (ngx_decode_base64(&plain, &arg[n]) != NGX_OK) { 296 if (ngx_decode_base64(&plain, &arg[n]) != NGX_OK) {
342 arg = s->args.elts; 342 arg = s->args.elts;
343 343
344 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0, 344 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0,
345 "mail auth login username: \"%V\"", &arg[0]); 345 "mail auth login username: \"%V\"", &arg[0]);
346 346
347 s->login.data = ngx_palloc(c->pool, ngx_base64_decoded_length(arg[0].len)); 347 s->login.data = ngx_pnalloc(c->pool, ngx_base64_decoded_length(arg[0].len));
348 if (s->login.data == NULL){ 348 if (s->login.data == NULL){
349 return NGX_ERROR; 349 return NGX_ERROR;
350 } 350 }
351 351
352 if (ngx_decode_base64(&s->login, &arg[0]) != NGX_OK) { 352 if (ngx_decode_base64(&s->login, &arg[0]) != NGX_OK) {
372 #if (NGX_DEBUG_MAIL_PASSWD) 372 #if (NGX_DEBUG_MAIL_PASSWD)
373 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0, 373 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0,
374 "mail auth login password: \"%V\"", &arg[0]); 374 "mail auth login password: \"%V\"", &arg[0]);
375 #endif 375 #endif
376 376
377 s->passwd.data = ngx_palloc(c->pool, ngx_base64_decoded_length(arg[0].len)); 377 s->passwd.data = ngx_pnalloc(c->pool,
378 ngx_base64_decoded_length(arg[0].len));
378 if (s->passwd.data == NULL){ 379 if (s->passwd.data == NULL){
379 return NGX_ERROR; 380 return NGX_ERROR;
380 } 381 }
381 382
382 if (ngx_decode_base64(&s->passwd, &arg[0]) != NGX_OK) { 383 if (ngx_decode_base64(&s->passwd, &arg[0]) != NGX_OK) {
400 { 401 {
401 u_char *p; 402 u_char *p;
402 ngx_str_t salt; 403 ngx_str_t salt;
403 ngx_uint_t n; 404 ngx_uint_t n;
404 405
405 p = ngx_palloc(c->pool, len + ngx_base64_encoded_length(s->salt.len) + 2); 406 p = ngx_pnalloc(c->pool, len + ngx_base64_encoded_length(s->salt.len) + 2);
406 if (p == NULL) { 407 if (p == NULL) {
407 return NGX_ERROR; 408 return NGX_ERROR;
408 } 409 }
409 410
410 salt.data = ngx_cpymem(p, prefix, len); 411 salt.data = ngx_cpymem(p, prefix, len);
432 arg = s->args.elts; 433 arg = s->args.elts;
433 434
434 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0, 435 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0,
435 "mail auth cram-md5: \"%V\"", &arg[0]); 436 "mail auth cram-md5: \"%V\"", &arg[0]);
436 437
437 s->login.data = ngx_palloc(c->pool, ngx_base64_decoded_length(arg[0].len)); 438 s->login.data = ngx_pnalloc(c->pool, ngx_base64_decoded_length(arg[0].len));
438 if (s->login.data == NULL){ 439 if (s->login.data == NULL){
439 return NGX_ERROR; 440 return NGX_ERROR;
440 } 441 }
441 442
442 if (ngx_decode_base64(&s->login, &arg[0]) != NGX_OK) { 443 if (ngx_decode_base64(&s->login, &arg[0]) != NGX_OK) {