[CONTACT]

[ABOUT]

[POLICY]

git clone milter milter Log gph

Found at: gopher.r-36.net:70/scm/bmf-milter/commit/1f931b2c026025c601d33e720e5d494e44915960.gph

tWait for processes and run bmf with verbose on debug. - bmf-milter - bmf filter milter daemon

git clone git://r-36.net/bmf-milter

Log

Files

Refs

LICENSE

---

commit 1f931b2c026025c601d33e720e5d494e44915960

parent 82206056ecfb4003651ef84ca27945fb33f818e8

Author: Christoph Lohmann <20h@r-36.net>

Date:   Sun, 14 Jun 2020 13:12:11 +0200
Wait for processes and run bmf with verbose on debug.
Diffstat:
  bmf-milter.c                        |      25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
---

diff --git a/bmf-milter.c b/bmf-milter.c

t@@ -126,13 +126,23 @@ mlfi_helo(SMFICTX *ctx, char *helohost)
                                 perror("open");
                                 _exit(1);
                         }
-                        while(dup2(priv->execpipe[0], 1) < 0 && errno == EINTR);
-                        while(dup2(priv->execpipe[0], 2) < 0 && errno == EINTR);
-                }
-
-                if (execl("/usr/bin/bmf", "bmf", "-t", "-v", "-v", (char *)NULL) < 0) {
-                        perror("execl");
-                        _exit(1);
+                        while(dup2(priv->execpipe[0], 1) < 0
+                                        && errno == EINTR);
+                        while(dup2(priv->execpipe[0], 2) < 0
+                                        && errno == EINTR);
+
+                        if (execl("/usr/bin/bmf", "bmf", "-t",
+                                        (char *)NULL) < 0) {
+                                perror("execl");
+                                _exit(1);
+                        }
+                } else {
+                        /* Run with -v(erbose) for debug. */
+                        if (execl("/usr/bin/bmf", "bmf", "-t",
+                                        "-v", (char *)NULL) < 0) {
+                                perror("execl");
+                                _exit(1);
+                        }
                 }
                 break;
         case -1:
t@@ -251,6 +261,7 @@ mlfi_close(SMFICTX *ctx)
                         if (dodebug)
                                 fprintf(stderr, "Kill pid %d.\n", priv->execpid);
                         kill(priv->execpid, SIGKILL);
+                        waitpid(priv->execpid, NULL, 0);
                 }
                 if (dodebug)
                         fprintf(stderr, "Free priv\n");
.


AD: