chiark / gitweb /
Incorporate markups on all paper copies to date.
[userv.git] / daemon.h
index 25b6f71173357855a506f469aa8c8e16a03a131a..7b06bf7b77a6e6f3cc1c8a609059c7c433352623 100644 (file)
--- a/daemon.h
+++ b/daemon.h
@@ -25,7 +25,7 @@
 #include <sys/types.h>
 
 #define RESET_CONFIGURATION " \n\
-  cd " USERDIRPREFIX "        \n\
+  cd ~/                       \n\
   reject                      \n\
   no-set-environment          \n\
   suppress-args               \n\
@@ -64,7 +64,6 @@
 #define DEFAULTINCLUDELOOKUP        ":default"
 #define EMPTYINCLUDELOOKUP          ":empty"
 
-#define USERDIRPREFIX               USERDIR "/"
 #define USERCONFIGDIRBASE           SYSTEMUSERVCONFIGDIR
 #define USERCONFIGDIR               HIDDENPREFIX USERCONFIGDIRBASE
 #define USERUSERVCONFIGPATH         USERDIR "/" USERCONFIGDIR
@@ -118,15 +117,25 @@ const char *printtoken(int token);
 void senderrmsgstderr(const char *errmsg);
 void disconnect(int exitstatus) NONRETURNING;
 
+void always_dumpparameter(const char *parm, char **values);
+void always_dumpexecsettings(void);
+
 void debug_dumprequest(pid_t mypid);
 void debug_dumpexecsettings(void);
 void debug_dumpparameter(const char *parm, char **values);
 pid_t nondebug_fork(void);
 const char *nondebug_serviceuserdir(const char *ifnondebug);
 
+typedef void builtinserviceexec_fnt(const char *const *args);
+builtinserviceexec_fnt NONRETURNING bisexec_environment, bisexec_parameter;
+builtinserviceexec_fnt NONRETURNING bisexec_version;
+builtinserviceexec_fnt NONRETURNING bisexec_toplevel, bisexec_override, bisexec_reset;
+builtinserviceexec_fnt NONRETURNING bisexec_execute;
+
 void execservice(const int synchsocket[], int clientfd) NONRETURNING;
 void servicerequest(int sfd) NONRETURNING;
 int synchread(int fd, int ch);
+const char *defaultpath(void);
 
 struct fdstate {
   int iswrite, realfd, holdfd;
@@ -137,22 +146,25 @@ struct fdstate {
   /* tokv_word_read, tokv_word_write */
 };
 
-extern char **argarray;
-extern char *((*defvararray)[2]);
+struct keyvaluepair { char *key, *value; };
+
+extern struct request_msg request_mbuf;
+extern struct keyvaluepair *defvararray;
 extern struct fdstate *fdarray; /* indexed by nominal fd */
 extern int fdarraysize, fdarrayused;
 extern int restfdwantstate, restfdwantrw;
-extern struct request_msg request_mbuf;
+extern int service_ngids;
+extern char **argarray;
 extern char *serviceuser, *service, *logname, *cwd;
 extern char *overridedata, *userrcfile;
 extern char *serviceuser_dir, *serviceuser_shell, *callinguser_shell;
-extern int service_ngids;
 extern gid_t *calling_gids, *service_gids;
-extern const char **calling_groups, **service_groups;
 extern uid_t serviceuser_uid;
+extern const char **calling_groups, **service_groups;
 extern char *execpath, **execargs;
 extern int execute; /* One of the execution modes tokt_execmode */
 extern int setenvironment, suppressargs, disconnecthup;
+extern builtinserviceexec_fnt *execbuiltin;
 extern int syslogopenfacility;
 
 #endif