X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fdirplex%2Fdirplex.c;h=d6879573cd397d4be6152ba13a7ea06d5479b6c4;hb=54490135194e0474e753ce7d4cb60f935dad1dd4;hp=14320ada0fc56fd8ebba1cc18eecd226d57e560d;hpb=acc2d159e6f946ed6abc7c0e843a483d6478bee3;p=ashd.git diff --git a/src/dirplex/dirplex.c b/src/dirplex/dirplex.c index 14320ad..d687957 100644 --- a/src/dirplex/dirplex.c +++ b/src/dirplex/dirplex.c @@ -244,7 +244,7 @@ static int checkdir(struct hthead *req, int fd, char *path, char *rest) struct child *ch; cf = getconfig(path); - if(cf->capture != NULL) { + if((cf->capture != NULL) && (cf->caproot || !cf->path || strcmp(cf->path, "."))) { cpath = sprintf2("%s/", path); if((ch = findchild(cpath, cf->capture, &ccf)) == NULL) { free(cpath); @@ -320,10 +320,12 @@ static void serve(struct hthead *req, int fd) 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)