]> git.pld-linux.org Git - packages/exim.git/commitdiff
- rel 9; protect against systems that leak SIGALRM (unknown reason for that) auto/th/exim-4_69-9
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Sun, 7 Jun 2009 09:38:38 +0000 (09:38 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    exim-force-sigalrm.patch -> 1.1
    exim.spec -> 1.307

exim-force-sigalrm.patch [new file with mode: 0644]
exim.spec

diff --git a/exim-force-sigalrm.patch b/exim-force-sigalrm.patch
new file mode 100644 (file)
index 0000000..c9e93f8
--- /dev/null
@@ -0,0 +1,49 @@
+--- exim-4.69.org/src/daemon.c 2009-06-01 23:02:02.505119117 +0200
++++ exim-4.69/src/daemon.c     2009-06-01 23:09:58.088404461 +0200
+@@ -25,7 +25,7 @@
+ static smtp_slot empty_smtp_slot = { 0, NULL };
+-
++static time_t sigalrm_seen_last;
+ /*************************************************
+ *               Local static variables           *
+@@ -1603,6 +1603,8 @@
+ smtp_input = TRUE;
++time(&sigalrm_seen_last);
++
+ /* Enter the never-ending loop... */
+ for (;;)
+@@ -1624,6 +1626,8 @@
+     {
+     DEBUG(D_any) debug_printf("SIGALRM received\n");
++    time(&sigalrm_seen_last);
++
+     /* Do a full queue run in a child process, if required, unless we already
+     have enough queue runners on the go. If we are not running as root, a
+     re-exec is required. */
+@@ -1885,11 +1889,19 @@
+   else
+     {
++    int time_diff;
+     struct timeval tv;
+     tv.tv_sec = queue_interval;
+     tv.tv_usec = 0;
+     select(0, NULL, NULL, NULL, &tv);
+     handle_ending_processes();
++
++    time_diff = (int)difftime(time(NULL), sigalrm_seen_last);
++    if ((queue_interval > 0) && (time_diff > (2*queue_interval)))
++      {
++        sigalrm_seen = TRUE;
++        log_write(0, LOG_MAIN|LOG_PANIC, "daemon: queue-runner not run for %lds. Forcing. Is SIGALRM delivery broken on this system ?", time_diff);
++      }
+     }
+   /* Re-enable the SIGCHLD handler if it has been run. It can't do it
index 3d55df9e67b78921a1a8b34e744c6b79d958a857..e91de3328dfffdf470eef18dbe33be631f869186 100644 (file)
--- a/exim.spec
+++ b/exim.spec
@@ -15,7 +15,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.69
-Release:       8
+Release:       9
 Epoch:         2
 License:       GPL
 Group:         Networking/Daemons/SMTP
@@ -53,6 +53,7 @@ Patch6:               %{name}-noloadbalance.patch
 Patch7:                %{name}_463_dsn_1_3.patch
 Patch8:                %{name}-spam-timeout.patch
 Patch9:                %{name}-fixes.patch
+Patch10:       %{name}-force-sigalrm.patch
 URL:           http://www.exim.org/
 %{?with_sasl:BuildRequires:    cyrus-sasl-devel >= 2.1.0}
 BuildRequires: db-devel
@@ -163,6 +164,7 @@ Pliki nagłówkowe dla Exima.
 %patch7 -p1
 %patch8 -p1
 %patch9 -p1
+%patch10 -p1
 
 install %{SOURCE13} doc/FAQ.txt.bz2
 install %{SOURCE14} doc/config.samples.tar.bz2
This page took 0.039377 seconds and 4 git commands to generate.