X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=userv.git;a=blobdiff_plain;f=debug.c;h=19713af4bcdf028b34ecfd488e63bfeb53de0fb2;hp=9174d8337c61bf018048a815204a77a694190546;hb=464d71c37246e556de9ec05f7b97af834a5224ee;hpb=9f56f874416db295bdb50d448bd99cdd34db969d diff --git a/debug.c b/debug.c index 9174d83..19713af 100644 --- a/debug.c +++ b/debug.c @@ -34,31 +34,6 @@ #include "lib.h" #include "tokens.h" -#ifdef DEBUG - -static const char *sl_ident= "UNSET"; -static int sl_option=0, sl_facility=0; - -void openlog(const char *ident, int option, int facility) { - sl_ident= ident; - sl_option= option; - sl_facility= facility; -} - -void syslog(int priority, const char *fmt, ...) { - va_list al; - fprintf(stderr,"syslog: %s<%d.%d>(%d): ",sl_ident,sl_facility,priority,sl_option); - va_start(al,fmt); - vfprintf(stderr,fmt,al); - va_end(al); - fputc('\n',stderr); -} - -void closelog(void) { - sl_ident= "CLOSED"; - sl_option= sl_facility= 0; -} - static void fdwantdumprwhead(int *donehead, const char *whichstr, const char *rwstr) { if (*donehead) return; printf("fds %s%s%s:",whichstr,rwstr?" ":"",rwstr?rwstr:""); @@ -96,6 +71,69 @@ static void truefalsedump(const char *whichstr, int val) { printf("%s: %s\n",whichstr,val?"yes":"no"); } +void always_dumpparameter(const char *parm, char **values) { + printf("config parameter `%s':",parm); + while (*values) printf(" `%s'",*values++); + printf("\n"); +} + +void always_dumpexecsettings(void) { + char **cpp; + + if (userrcfile) printf("user-rcfile: `%s'\n",userrcfile); + else printf("user-rcfile: \n"); + fdwantdump("required",tokv_word_requirefd,"ERROR"); + fdwantdump("allowed",tokv_word_allowfd,"either"); + fdwantdump("ignored",tokv_word_ignorefd,0); + fdwantdump("null",tokv_word_nullfd,"both"); + fdwantdump("rejected",tokv_word_rejectfd,0); + fputs("execute: ",stdout); + switch (execute) { + case tokv_word_reject: printf("reject"); break; + case tokv_word_execute: printf("`%s'",execpath); break; + case tokv_word_executefromdirectory: printf("from directory, `%s'",execpath); break; + case tokv_word_executefrompath: printf("from path"); break; + case tokv_word_executebuiltin: printf("builtin %s",execpath); break; + default: abort(); + } + if (execargs) { + fputs("\n" "no exec arguments\n",stdout); + } else { + fputs("\n" "exec arguments:",stdout); + for (cpp= execargs; cpp; cpp++) printf(" `%s'",*cpp); + putchar('\n'); + } + truefalsedump("set-environment",setenvironment); + truefalsedump("suppress-args",suppressargs); + truefalsedump("disconnect-hup",disconnecthup); + truefalsedump("set-environment",setenvironment); +} + +#ifdef DEBUG + +static const char *sl_ident= "UNSET"; +static int sl_option=0, sl_facility=0; + +void openlog(const char *ident, int option, int facility) { + sl_ident= ident; + sl_option= option; + sl_facility= facility; +} + +void syslog(int priority, const char *fmt, ...) { + va_list al; + fprintf(stderr,"syslog: %s<%d.%d>(%d): ",sl_ident,sl_facility,priority,sl_option); + va_start(al,fmt); + vfprintf(stderr,fmt,al); + va_end(al); + fputc('\n',stderr); +} + +void closelog(void) { + sl_ident= "CLOSED"; + sl_option= sl_facility= 0; +} + static void groupsdump(int ngids, const gid_t *gids, const char *const *groups) { int i; @@ -136,39 +174,18 @@ void debug_dumprequest(pid_t mypid) { for (i=0; i\n"); - fdwantdump("required",tokv_word_requirefd,"ERROR"); - fdwantdump("allowed",tokv_word_allowfd,"either"); - fdwantdump("ignored",tokv_word_ignorefd,0); - fdwantdump("null",tokv_word_nullfd,"both"); - fdwantdump("rejected",tokv_word_rejectfd,0); - printf("execute: "); - switch (execute) { - case tokv_word_reject: printf("reject"); break; - case tokv_word_execute: printf("`%s'",execpath); break; - case tokv_word_executefromdirectory: printf("from directory, `%s'",execpath); break; - case tokv_word_executefrompath: printf("from path"); break; - default: abort(); - } - printf("\n"); - truefalsedump("set-environment",setenvironment); - truefalsedump("suppress-args",suppressargs); - truefalsedump("disconnect-hup",disconnecthup); - truefalsedump("set-environment",setenvironment); + always_dumpexecsettings(); } void debug_dumpparameter(const char *parm, char **values) { - printf("config parameter `%s':",parm); - while (*values) printf(" `%s'",*values++); - printf("\n"); + always_dumpparameter(parm,values); } static int groupsallin(int na, const gid_t *lista,