Mercurial > hg > nginx-vendor-0-6
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 |