<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/mail/ngx_mail_handler.c, branch release-1.30.0</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Mail: logging upstream to the error log with "smtp_auth none;".</title>
<updated>2025-08-13T14:20:34+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2025-07-21T13:44:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=239e10793adb1e32847095ba6c1d14249bf19a5c'/>
<id>239e10793adb1e32847095ba6c1d14249bf19a5c</id>
<content type='text'>
Previously, it was never logged because of missing login.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, it was never logged because of missing login.
</pre>
</div>
</content>
</entry>
<entry>
<title>Mail: improved error handling in plain/login/cram-md5 auth methods.</title>
<updated>2025-08-13T14:20:34+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2025-08-12T11:55:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=765642b86e0df1b5ef37f42522be7d08d95909c9'/>
<id>765642b86e0df1b5ef37f42522be7d08d95909c9</id>
<content type='text'>
Previously, login and password storage could be left in inconsistent
state in a session after decoding errors.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, login and password storage could be left in inconsistent
state in a session after decoding errors.
</pre>
</div>
</content>
</entry>
<entry>
<title>SSL: removed the "ssl" directive.</title>
<updated>2023-06-08T10:49:27+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2023-06-08T10:49:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=d32f66f1e8dc81a0edbadbacf74191684a653d09'/>
<id>d32f66f1e8dc81a0edbadbacf74191684a653d09</id>
<content type='text'>
It has been deprecated since 7270:46c0c7ef4913 (1.15.0) in favour of
the "ssl" parameter of the "listen" directive, which has been available
since 2224:109849282793 (0.7.14).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It has been deprecated since 7270:46c0c7ef4913 (1.15.0) in favour of
the "ssl" parameter of the "listen" directive, which has been available
since 2224:109849282793 (0.7.14).
</pre>
</div>
</content>
</entry>
<entry>
<title>Mail: max_errors directive.</title>
<updated>2021-05-19T00:13:31+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2021-05-19T00:13:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=173f16f736c10eae46cd15dd861b04b82d91a37a'/>
<id>173f16f736c10eae46cd15dd861b04b82d91a37a</id>
<content type='text'>
Similarly to smtpd_hard_error_limit in Postfix and smtp_max_unknown_commands
in Exim, specifies the number of errors after which the connection is closed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Similarly to smtpd_hard_error_limit in Postfix and smtp_max_unknown_commands
in Exim, specifies the number of errors after which the connection is closed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Mail: fixed reading with fully filled buffer (ticket #2159).</title>
<updated>2021-04-21T20:24:59+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2021-04-21T20:24:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=7b9920aad80299d79f4dba08de36693804f8751c'/>
<id>7b9920aad80299d79f4dba08de36693804f8751c</id>
<content type='text'>
With SMTP pipelining, ngx_mail_read_command() can be called with s-&gt;buffer
without any space available, to parse additional commands received to the
buffer on previous calls.  Previously, this resulted in recv() being called
with zero length, resulting in zero being returned, which was interpreted
as a connection close by the client, so nginx silently closed connection.

Fix is to avoid calling c-&gt;recv() if there is no free space in the buffer,
but continue parsing of the already received commands.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With SMTP pipelining, ngx_mail_read_command() can be called with s-&gt;buffer
without any space available, to parse additional commands received to the
buffer on previous calls.  Previously, this resulted in recv() being called
with zero length, resulting in zero being returned, which was interpreted
as a connection close by the client, so nginx silently closed connection.

Fix is to avoid calling c-&gt;recv() if there is no free space in the buffer,
but continue parsing of the already received commands.
</pre>
</div>
</content>
</entry>
<entry>
<title>Mail: fixed build without SSL.</title>
<updated>2021-03-11T01:46:26+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2021-03-11T01:46:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=3bbec30739b17783394e34924ca732b946550323'/>
<id>3bbec30739b17783394e34924ca732b946550323</id>
<content type='text'>
Broken by d84f13618277 and 12ea1de7d87c (1.19.8).

Reported by Sergey Osokin.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Broken by d84f13618277 and 12ea1de7d87c (1.19.8).

Reported by Sergey Osokin.
</pre>
</div>
</content>
</entry>
<entry>
<title>Mail: realip module.</title>
<updated>2021-03-05T14:16:29+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2021-03-05T14:16:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=c2e22bcf325ee0031d1c86fbdfb79a2f8e1b4a7b'/>
<id>c2e22bcf325ee0031d1c86fbdfb79a2f8e1b4a7b</id>
<content type='text'>
When configured with the "set_real_ip_from", it can set client's IP
address as visible in logs to the one obtained via the PROXY protocol.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When configured with the "set_real_ip_from", it can set client's IP
address as visible in logs to the one obtained via the PROXY protocol.
</pre>
</div>
</content>
</entry>
<entry>
<title>Mail: parsing of the PROXY protocol from clients.</title>
<updated>2021-03-05T14:16:24+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2021-03-05T14:16:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=1fce224f01b5a9b503315bd24e99421e5ca5bd7c'/>
<id>1fce224f01b5a9b503315bd24e99421e5ca5bd7c</id>
<content type='text'>
Activated with the "proxy_protocol" parameter of the "listen" directive.
Obtained information is passed to the auth_http script in Proxy-Protocol-Addr,
Proxy-Protocol-Port, Proxy-Protocol-Server-Addr, and Proxy-Protocol-Server-Port
headers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Activated with the "proxy_protocol" parameter of the "listen" directive.
Obtained information is passed to the auth_http script in Proxy-Protocol-Addr,
Proxy-Protocol-Port, Proxy-Protocol-Server-Addr, and Proxy-Protocol-Server-Port
headers.
</pre>
</div>
</content>
</entry>
<entry>
<title>Mail: fixed log action after SSL handshake.</title>
<updated>2021-03-05T14:16:20+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2021-03-05T14:16:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=83de0868b1bb5275e51698545e2165782bb5421d'/>
<id>83de0868b1bb5275e51698545e2165782bb5421d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Mail: postponed session initialization under accept mutex.</title>
<updated>2021-03-05T14:16:19+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2021-03-05T14:16:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=7d4cd6cff428cb8717f8560a00f825d72b49f68a'/>
<id>7d4cd6cff428cb8717f8560a00f825d72b49f68a</id>
<content type='text'>
Similarly to 40e8ce405859 in the stream module, this reduces the time
accept mutex is held.  This also simplifies following changes to
introduce PROXY protocol support.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Similarly to 40e8ce405859 in the stream module, this reduces the time
accept mutex is held.  This also simplifies following changes to
introduce PROXY protocol support.
</pre>
</div>
</content>
</entry>
</feed>
