summaryrefslogtreecommitdiff
path: root/local.c
diff options
context:
space:
mode:
Diffstat (limited to 'local.c')
-rw-r--r--local.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/local.c b/local.c
index bd5f147..98878fa 100644
--- a/local.c
+++ b/local.c
@@ -9,6 +9,7 @@
#include <stdio.h>
#include <string.h>
#include <signal.h>
+#include <sys/wait.h>
#include "local.h"
#include "main.h"
@@ -191,7 +192,19 @@ void local_cleanup(void)
{
if(mda_fp)
{
- fclose(mda_fp);
+ int status;
+
+ if((status = pclose(mda_fp)))
+ {
+ if(WIFSIGNALED(status))
+ fprintf(stderr, "MDA died of signal %d\n", WTERMSIG(status));
+ else if(WIFEXITED(status))
+ fprintf(stderr, "MDA returned nonzero status %d\n", WEXITSTATUS(status));
+ else
+ fprintf(stderr, "MDA failed\n");
+ exit(EX_OSERR);
+ }
+
mda_fp = NULL;
if(verbose)