X-Git-Url: http://www.dolda2000.com/gitweb/?p=ashd.git;a=blobdiff_plain;f=src%2Fpatplex.c;h=13fa062e4aaaeb2486082fe69cd0d874340871b3;hp=b03b626614c9c79f3440e5da00042ec885d45bd2;hb=9e70ef793ddcf51edc0f6489eb6f70762380afc0;hpb=acc2d159e6f946ed6abc7c0e843a483d6478bee3 diff --git a/src/patplex.c b/src/patplex.c index b03b626..13fa062 100644 --- a/src/patplex.c +++ b/src/patplex.c @@ -249,13 +249,16 @@ static struct pattern *parsepattern(struct cfstate *s) if(pat->restpat != NULL) free(pat->restpat); pat->restpat = sstrdup(s->argv[1]); - } else if(!strcmp(s->argv[0], "set")) { + } else if(!strcmp(s->argv[0], "set") || !strcmp(s->argv[0], "xset")) { if(s->argc < 3) { - flog(LOG_WARNING, "%s:%i: missing header name or pattern for `set' directive", s->file, s->lno); + flog(LOG_WARNING, "%s:%i: missing header name or pattern for `%s' directive", s->file, s->lno, s->argv[0]); continue; } omalloc(head); - head->name = sstrdup(s->argv[1]); + if(!strcmp(s->argv[0], "xset")) + head->name = sprintf2("X-Ash-%s", s->argv[1]); + else + head->name = sstrdup(s->argv[1]); head->value = sstrdup(s->argv[2]); head->next = pat->headers; pat->headers = head; @@ -488,10 +491,12 @@ static void reloadconf(char *nm) static void chldhandler(int sig) { pid_t pid; + int st; - do { - pid = waitpid(-1, NULL, WNOHANG); - } while(pid > 0); + while((pid = waitpid(-1, &st, WNOHANG)) > 0) { + if(WCOREDUMP(st)) + flog(LOG_WARNING, "child process %i dumped core", pid); + } } static void sighandler(int sig)