aboutsummaryrefslogtreecommitdiff
path: root/mail/dbmail20/files/patch-2.0.4_bug190_pool.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/dbmail20/files/patch-2.0.4_bug190_pool.c')
-rw-r--r--mail/dbmail20/files/patch-2.0.4_bug190_pool.c126
1 files changed, 0 insertions, 126 deletions
diff --git a/mail/dbmail20/files/patch-2.0.4_bug190_pool.c b/mail/dbmail20/files/patch-2.0.4_bug190_pool.c
deleted file mode 100644
index 562c0cb23688..000000000000
--- a/mail/dbmail20/files/patch-2.0.4_bug190_pool.c
+++ /dev/null
@@ -1,126 +0,0 @@
-Index: pool.c
-===================================================================
---- pool.c (revision 1600)
-+++ pool.c (revision 1758)
-@@ -73,8 +73,10 @@
- void scoreboard_new(serverConfig_t * conf)
- {
- int serr;
-- if ((shmid = shmget(IPC_PRIVATE, P_SIZE, 0644 | IPC_CREAT)) == -1)
-- trace(TRACE_FATAL, "%s,%s: shmget failed",__FILE__,__func__);
-+ if ((shmid = shmget(IPC_PRIVATE, P_SIZE, 0644 | IPC_CREAT)) == -1) {
-+ serr = errno;
-+ trace(TRACE_FATAL, "%s,%s: shmget failed [%s]",__FILE__,__func__, strerror(serr));
-+ }
- scoreboard = shmat(shmid, (void *) 0, 0);
- serr=errno;
- if (scoreboard == (Scoreboard_t *) (-1)) {
-@@ -222,7 +236,7 @@
- }
- scoreboard_unlck();
- trace(TRACE_FATAL,
-- "%s,%s: pid NOT found on scoreboard [%d]", __FILE__, __FUNCTION__, pid);
-+ "%s,%s: pid NOT found on scoreboard [%d]", __FILE__, __func__, pid);
- return -1;
- }
-
-@@ -238,25 +252,25 @@
- {
- int i;
- trace(TRACE_MESSAGE, "%s,%s: register child [%d]",
-- __FILE__, __FUNCTION__, getpid());
-+ __FILE__, __func__, getpid());
-
- scoreboard_wrlck();
- for (i = 0; i < scoreboard->conf->maxChildren; i++) {
- if (scoreboard->child[i].pid == -1)
- break;
- if (scoreboard->child[i].pid == getpid()) {
-- trace(TRACE_ERROR,
-+ scoreboard_unlck();
-+ trace(TRACE_FATAL,
- "%s,%s: child already registered.",
-- __FILE__, __FUNCTION__);
-- scoreboard_unlck();
-+ __FILE__, __func__);
- return -1;
- }
- }
- if (i == scoreboard->conf->maxChildren) {
-+ scoreboard_unlck();
- trace(TRACE_WARNING,
- "%s,%s: no empty slot found",
-- __FILE__, __FUNCTION__);
-- scoreboard_unlck();
-+ __FILE__, __func__);
- return -1;
- }
-
-@@ -264,8 +278,8 @@
- scoreboard->child[i].status = STATE_IDLE;
- scoreboard_unlck();
-
-- trace(TRACE_INFO, "%s,%s: initializing child_state [%d] using slot [%d]",
-- __FILE__, __FUNCTION__, getpid(), i);
-+ trace(TRACE_MESSAGE, "%s,%s: initializing child_state [%d] using slot [%d]",
-+ __FILE__, __func__, getpid(), i);
- return 0;
- }
-
-@@ -281,7 +295,7 @@
- scoreboard->child[key].status = STATE_CONNECTED;
- scoreboard_unlck();
-
-- trace(TRACE_DEBUG, "%s,%s: [%d]", __FILE__, __FUNCTION__,
-+ trace(TRACE_DEBUG, "%s,%s: [%d]", __FILE__, __func__,
- getpid());
- }
-
-@@ -297,7 +311,7 @@
- scoreboard->child[key].status = STATE_IDLE;
- scoreboard_unlck();
-
-- trace(TRACE_DEBUG, "%s,%s: [%d]", __FILE__, __FUNCTION__,
-+ trace(TRACE_DEBUG, "%s,%s: [%d]", __FILE__, __func__,
- getpid());
- }
-
-@@ -320,7 +334,7 @@
- scoreboard_unlck();
-
- trace(TRACE_MESSAGE,
-- "%s,%s: child [%d] unregistered", __FILE__, __FUNCTION__,
-+ "%s,%s: child [%d] unregistered", __FILE__, __func__,
- getpid());
- }
-
-@@ -346,7 +360,7 @@
- manage_stop_children();
- trace(TRACE_FATAL,
- "%s,%s: could not create children. Fatal.",
-- __FILE__, __FUNCTION__);
-+ __FILE__, __func__);
- exit(0);
- }
- }
-@@ -360,10 +374,17 @@
- if (chpid == -1)
- continue;
- if (waitpid(chpid, NULL, WNOHANG|WUNTRACED) == chpid) {
-+ scoreboard_release(chpid);
- trace(TRACE_MESSAGE,"%s,%s: child [%d] exited. Restarting...",
-- __FILE__, __FUNCTION__, chpid);
-- scoreboard_release(chpid);
-- CreateChild(&childinfo);
-+ __FILE__, __func__, chpid);
-+ if (CreateChild(&childinfo)== -1) {
-+ trace(TRACE_ERROR,"%s,%s: createchild failed. Bailout...",
-+ __FILE__, __func__);
-+ GeneralStopRequested=1;
-+ manage_stop_children();
-+
-+ exit(1);
-+ }
- }
- }
- sleep(1);