comparison src/mail/ngx_mail_handler.c @ 386:1878e9c00f22 NGINX_0_6_37

nginx 0.6.37 *) Feature: Microsoft specific "AUTH LOGIN with User Name" mode support in mail proxy server. Thanks to Maxim Dounin. *) Bugfix: nginx could not be built on platforms different from i386, amd64, sparc, and ppc; the bug had appeared in 0.6.36.
author Igor Sysoev <http://sysoev.ru>
date Mon, 18 May 2009 00:00:00 +0400
parents b743d290eb3b
children
comparison
equal deleted inserted replaced
385:842321c9fc84 386:1878e9c00f22
333 return NGX_DONE; 333 return NGX_DONE;
334 } 334 }
335 335
336 336
337 ngx_int_t 337 ngx_int_t
338 ngx_mail_auth_login_username(ngx_mail_session_t *s, ngx_connection_t *c) 338 ngx_mail_auth_login_username(ngx_mail_session_t *s, ngx_connection_t *c,
339 ngx_uint_t n)
339 { 340 {
340 ngx_str_t *arg; 341 ngx_str_t *arg;
341 342
342 arg = s->args.elts; 343 arg = s->args.elts;
343 344
344 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0, 345 ngx_log_debug1(NGX_LOG_DEBUG_MAIL, c->log, 0,
345 "mail auth login username: \"%V\"", &arg[0]); 346 "mail auth login username: \"%V\"", &arg[n]);
346 347
347 s->login.data = ngx_palloc(c->pool, ngx_base64_decoded_length(arg[0].len)); 348 s->login.data = ngx_palloc(c->pool, ngx_base64_decoded_length(arg[n].len));
348 if (s->login.data == NULL){ 349 if (s->login.data == NULL){
349 return NGX_ERROR; 350 return NGX_ERROR;
350 } 351 }
351 352
352 if (ngx_decode_base64(&s->login, &arg[0]) != NGX_OK) { 353 if (ngx_decode_base64(&s->login, &arg[n]) != NGX_OK) {
353 ngx_log_error(NGX_LOG_INFO, c->log, 0, 354 ngx_log_error(NGX_LOG_INFO, c->log, 0,
354 "client sent invalid base64 encoding in AUTH LOGIN command"); 355 "client sent invalid base64 encoding in AUTH LOGIN command");
355 return NGX_MAIL_PARSE_INVALID_COMMAND; 356 return NGX_MAIL_PARSE_INVALID_COMMAND;
356 } 357 }
357 358