aboutsummaryrefslogtreecommitdiff
path: root/src/mail/ngx_mail_imap_handler.c
Commit message (Collapse)AuthorAge
* Mail: IMAP pipelining support.Maxim Dounin2021-05-19
| | | | | | | | | | The change is mostly the same as the SMTP one (04e43d03e153 and 3f5d0af4e40a), and ensures that nginx is able to properly handle or reject multiple IMAP commands. The s->cmd field is not really used and set for consistency. Non-synchronizing literals handling in invalid/unknown commands is limited, so when a non-synchronizing literal is detected at the end of a discarded line, the connection is closed.
* Mail: fixed backslash handling in IMAP literals.Maxim Dounin2021-05-19
| | | | | | | | | | | | | | | | | | | Previously, s->backslash was set if any of the arguments was a quoted string with a backslash character. After successful command parsing this resulted in all arguments being filtered to remove backslashes. This is, however, incorrect, as backslashes should not be removed from IMAP literals. For example: S: * OK IMAP4 ready C: a01 login {9} S: + OK C: user\name "pass\"word" S: * BAD internal server error resulted in "Auth-User: username" instead of "Auth-User: user\name" as it should. Fix is to apply backslash filtering on per-argument basis during parsing.
* Mail: added missing event handling after reading data.Maxim Dounin2021-03-05
| | | | | | | | | | | | | If we need to be notified about further events, ngx_handle_read_event() needs to be called after a read event is processed. Without this, an event can be removed from the kernel and won't be reported again, notably when using oneshot event methods, such as eventport on Solaris. For consistency, existing ngx_handle_read_event() call removed from ngx_mail_read_command(), as this call only covers one of the code paths where ngx_mail_read_command() returns NGX_AGAIN. Instead, appropriate processing added to the callers, covering all code paths where NGX_AGAIN is returned.
* Mail: added missing event handling after blocking events.Maxim Dounin2021-03-05
| | | | | | | As long as a read event is blocked (ignored), ngx_handle_read_event() needs to be called to make sure no further notifications will be triggered when using level-triggered event methods, such as select() or poll().
* Mail: make it possible to disable SASL EXTERNAL.Sergey Kandaurov2017-01-12
|
* Mail: support SASL EXTERNAL (RFC 4422).Rob N ★2016-10-08
| | | | | | | | | | | This is needed to allow TLS client certificate auth to work. With ssl_verify_client configured, the auth daemon can choose to allow the connection to proceed based on the certificate data. This has been tested with Thunderbird for IMAP only. I've not yet found a client that will do client certificate auth for POP3 or SMTP, and the method is not really documented anywhere that I can find. That said, its simple enough that the way I've done is probably right.
* Copyright updated.Maxim Konovalov2012-01-18
|
* ngx_str_set() and ngx_str_null()Igor Sysoev2010-05-14
|
* compatibility with Microsoft'sIgor Sysoev2009-02-09
| | | | | AUTH LOGIN [base64 encoded user name ] patch by Maxim Dounin
* use "!= NGX_OK" instead of "== NGX_ERROR"Igor Sysoev2008-12-09
|
* *) back out r2040Igor Sysoev2008-06-17
| | | | | | *) refactor ngx_palloc() *) introduce ngx_pnalloc() *) additional pool blocks have smaller header
* move condition declarations inside blocks where they are usedIgor Sysoev2007-12-10
|
* ngx_mail_pop3_module, ngx_mail_imap_module, and ngx_mail_smtp_moduleIgor Sysoev2007-09-15
|
* style fix: remove trailing spacesIgor Sysoev2007-09-14
|
* create salt just before it will be usedIgor Sysoev2007-09-14
|
* optimizationsIgor Sysoev2007-09-14
|
* move event handling to protocol specific code,Igor Sysoev2007-09-14
| | | | it is required to support SMTP greeting delay
* optimizationsIgor Sysoev2007-09-13
|
* style fix and optimizationsIgor Sysoev2007-09-13
|
* split pop3, imap, and smtp handlersIgor Sysoev2007-09-13