X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=secnet.git;a=blobdiff_plain;f=log.c;h=3748f9157d15dc7778847201c0eaed777f39fdc5;hp=156f3549df18c23c481cc017f587ea96b475be79;hb=45736f7396593c2f4ef9ebf35c561e7a32111f63;hpb=5c679ae0bf87d5d53b65c5e7667a1fa304bdcdeb;ds=sidebyside diff --git a/log.c b/log.c index 156f354..3748f91 100644 --- a/log.c +++ b/log.c @@ -225,6 +225,23 @@ void lg_perror(struct log_if *lg, const char *desc, struct cloc *loc, va_end(al); } +void lg_exitstatus(struct log_if *lg, const char *desc, struct cloc *loc, + int class, int status, const char *progname) +{ + if (!status) + lg_perror(lg,desc,loc,class,0,"%s exited",progname); + else if (WIFEXITED(status)) + lg_perror(lg,desc,loc,class,0,"%s exited with error exit status %d", + progname,WEXITSTATUS(status)); + else if (WIFSIGNALED(status)) + lg_perror(lg,desc,loc,class,0,"%s died due to fatal signal %s (%d)%s", + progname,strsignal(WTERMSIG(status)),WTERMSIG(status), + WCOREDUMP(status)?" (core dumped)":""); + else + lg_perror(lg,desc,loc,class,0,"%s died with unknown wait status %d", + progname,status); +} + struct log_if *init_log(list_t *ll) { int i=0;