#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:"");
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: <none>\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;
for (i=0; i<request_mbuf.nargs; i++) printf(" `%s'",argarray[i]);
printf("\n" "variables:");
for (i=0; i<request_mbuf.nvars; i++)
- printf(" `%s'=`%s'",defvararray[i][0],defvararray[i][1]);
+ printf(" `%s'=`%s'",defvararray[i].key,defvararray[i].value);
printf("\n");
if (getenv("USERVD_SLEEP")) sleep(atoi(getenv("USERVD_SLEEP")));
}
void debug_dumpexecsettings(void) {
printf("configuration parsed\n");
- if (userrcfile) printf("user-rcfile: `%s'\n",userrcfile);
- else printf("user-rcfile: <none>\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,