aboutsummaryrefslogtreecommitdiffstats
path: root/mail/dbmail/files/patch-2.0.4_bug190_server.c
diff options
context:
space:
mode:
authorpav <pav@FreeBSD.org>2005-07-19 00:04:16 +0800
committerpav <pav@FreeBSD.org>2005-07-19 00:04:16 +0800
commit04fb4b6794da4aa50daf3ac426a900b7a825267d (patch)
tree1b2cb499f6323d7c39396f7810b028a42f79e61d /mail/dbmail/files/patch-2.0.4_bug190_server.c
parent7adf173660910105f97acb77eb59275dd1ebaf90 (diff)
downloadfreebsd-ports-gnome-04fb4b6794da4aa50daf3ac426a900b7a825267d.tar.gz
freebsd-ports-gnome-04fb4b6794da4aa50daf3ac426a900b7a825267d.tar.zst
freebsd-ports-gnome-04fb4b6794da4aa50daf3ac426a900b7a825267d.zip
- Patch nine bugs:
#79 - INTERNALDATE reponses do not conform to RFC #145 - LMTP loses return-path #177 - Compile Fails on FreeBSD (fixes compilation on FreeBSD 4.X) #184 - socklen_t issue #190 - huge load if database crash #198 - DBMail processes killing each other #199 - spare child creates zombie #214 - dbmail-smtp dumps core with double free #216 - malformed header prevents delivery - Fix RC_SUBR usage PR: ports/83437, also ports/80736, ports/82437, ports/83575 Submitted by: Mark Starovoytov <mark@kikg.ifmo.ru>, parts also by: Radim Kolar <hsn@netmag.cz>, thompsa, Marcus Grando <marcus@corp.grupos.com.br> Approved by: maintainer timeout (2 months on oldest PR)
Diffstat (limited to 'mail/dbmail/files/patch-2.0.4_bug190_server.c')
-rw-r--r--mail/dbmail/files/patch-2.0.4_bug190_server.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/mail/dbmail/files/patch-2.0.4_bug190_server.c b/mail/dbmail/files/patch-2.0.4_bug190_server.c
new file mode 100644
index 000000000000..23129a5c8b52
--- /dev/null
+++ b/mail/dbmail/files/patch-2.0.4_bug190_server.c
@@ -0,0 +1,41 @@
+Index: server.c
+===================================================================
+--- server.c (revision 1600)
++++ server.c (revision 1758)
+@@ -119,9 +119,15 @@
+ alarm(10);
+
+ trace(TRACE_DEBUG, "StartServer(): children created, starting main service loop");
+- while (!GeneralStopRequested)
+- manage_restart_children();
+-
++ while (!GeneralStopRequested) {
++ if (db_connect() != 0) {
++ GeneralStopRequested=1;
++ } else {
++ db_disconnect();
++ manage_restart_children();
++ }
++ }
++
+ manage_stop_children();
+ scoreboard_delete();
+
+@@ -131,6 +137,8 @@
+
+ void ParentSigHandler(int sig, siginfo_t * info, void *data)
+ {
++ int saved_errno = errno;
++
+ if (ParentPID != getpid()) {
+ trace(TRACE_INFO,
+ "ParentSigHandler(): i'm no longer father");
+@@ -162,6 +170,8 @@
+ default:
+ GeneralStopRequested = 1;
+ }
++
++ errno = saved_errno;
+ }
+
+