diff options
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.c | 126 |
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); |