[packages/exim] - rel 3; update git branch; fixes bug 1891
arekm
arekm at pld-linux.org
Sat Apr 6 12:28:28 CEST 2019
commit a907f1e5c8abbde6e867f95952e4ea7adc67c9b1
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Sat Apr 6 12:28:18 2019 +0200
- rel 3; update git branch; fixes bug 1891
exim-bug-1891.patch | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++
exim.spec | 6 +++--
2 files changed, 68 insertions(+), 2 deletions(-)
---
diff --git a/exim.spec b/exim.spec
index 38a810f..cdba6b6 100644
--- a/exim.spec
+++ b/exim.spec
@@ -25,7 +25,7 @@ Summary(pl.UTF-8): Agent Transferu Poczty Uniwersytetu w Cambridge
Summary(pt_BR.UTF-8): Servidor de correio eletrônico exim
Name: exim
Version: 4.92
-Release: 2
+Release: 3
Epoch: 2
License: GPL
Group: Networking/Daemons/SMTP
@@ -51,7 +51,7 @@ Source15: %{name}4-smtp.pamd
Source16: %{name}on.png
# sh branch.sh
Patch100: %{name}-git.patch
-# Patch100-md5: 56f4bdc1806cbadf2b2a0abad6edf956
+# Patch100-md5: c977ead09cc58ce7cdba59a6183f6c69
Patch0: %{name}4-EDITME.patch
Patch1: %{name}4-monitor-EDITME.patch
Patch2: %{name}4-cflags.patch
@@ -59,6 +59,7 @@ Patch3: exim-defs.patch
Patch4: %{name}4-Makefile-Default.patch
# http://marc.merlins.org/linux/exim/files/sa-exim-cvs/localscan_dlopen_exim_4.20_or_better.patch
Patch5: localscan_dlopen_%{name}_4.20_or_better.patch
+Patch6: exim-bug-1891.patch
Patch8: %{name}-spam-timeout.patch
@@ -184,6 +185,7 @@ Pliki nagłówkowe dla Exima.
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p2
%patch8 -p1
diff --git a/exim-bug-1891.patch b/exim-bug-1891.patch
new file mode 100644
index 0000000..e5597f4
--- /dev/null
+++ b/exim-bug-1891.patch
@@ -0,0 +1,64 @@
+commit 3c55eef24050cec9e50e98e2f5fc12cd45f1ef8a
+Author: Jeremy Harris <jgh146exb at wizmail.org>
+Date: Fri Apr 5 15:22:20 2019 +0100
+
+ Logging: close logfile when non-smtp input is taking a long time. Bug 1891
+
+diff --git a/src/src/receive.c b/src/src/receive.c
+index 0cb38626..64f62757 100644
+--- a/src/src/receive.c
++++ b/src/src/receive.c
+@@ -571,6 +571,30 @@ return FALSE;
+
+
+
++/* Pause for a while waiting for input. If none received in that time,
++close the logfile, if we had one open; then if we wait for a long-running
++datasource (months, in one use-case) log rotation will not leave us holding
++the file copy. */
++
++static void
++log_close_chk(void)
++{
++if (!receive_timeout)
++ {
++ struct timeval t;
++ timesince(&t, &received_time);
++ if (t.tv_sec > 30*60)
++ mainlog_close();
++ else
++ {
++ fd_set r;
++ FD_ZERO(&r); FD_SET(0, &r);
++ t.tv_sec = 30*60 - t.tv_sec; t.tv_usec = 0;
++ if (select(1, &r, NULL, NULL, &t) == 0) mainlog_close();
++ }
++ }
++}
++
+ /*************************************************
+ * Read data portion of a non-SMTP message *
+ *************************************************/
+@@ -619,9 +643,11 @@ register int linelength = 0;
+
+ if (!f.dot_ends)
+ {
+- register int last_ch = '\n';
++ int last_ch = '\n';
+
+- for (; (ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) != EOF; last_ch = ch)
++ for ( ;
++ log_close_chk(), (ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) != EOF;
++ last_ch = ch)
+ {
+ if (ch == 0) body_zerocount++;
+ if (last_ch == '\r' && ch != '\n')
+@@ -663,7 +689,7 @@ if (!f.dot_ends)
+
+ ch_state = 1;
+
+-while ((ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) != EOF)
++while (log_close_chk(), (ch = (receive_getc)(GETC_BUFFER_UNLIMITED)) != EOF)
+ {
+ if (ch == 0) body_zerocount++;
+ switch (ch_state)
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/exim.git/commitdiff/a907f1e5c8abbde6e867f95952e4ea7adc67c9b1
More information about the pld-cvs-commit
mailing list