chiark / gitweb /
clean targets except realclean don't remove spec.html, spec.ps.
[userv.git] / common.h
index 5fdfd76670a356105e03710135dace489bb4c17a..2a2db41eb2c315b63ff26c0549b44ffca324f74a 100644 (file)
--- a/common.h
+++ b/common.h
@@ -43,7 +43,7 @@ static const unsigned char protocolchecksumversion[PCSUMSIZE]= {
 #ifndef PIPEFORMAT
 # define PIPEFORMAT "%lx.%lx.%x"
 # define PIPEPATTERN "[0-9a-f]*.[0-9a-f]*.*[0-9a-f]"
-# define PIPEFORMATEXTEND (sizeof(long)*2*2+sizeof(int)*2+1)
+# define PIPEFORMATEXTEND (sizeof(unsigned long)*2*2+sizeof(int)*2+3)
 # define PIPEMAXLEN (sizeof(PIPEFORMAT)+PIPEFORMATEXTEND)
 #endif
 
@@ -53,16 +53,16 @@ static const unsigned char protocolchecksumversion[PCSUMSIZE]= {
 #endif
 
 #define MAX_ALLOW_FD 1024
-#define MAX_INCLUDE_NEST 40
 #define MAX_GENERAL_STRING (1024*1024)
 #define MAX_OVERRIDE_LEN MAX_GENERAL_STRING
-#define MAX_ARGSDEFVARS 4096
+#define MAX_ERRMSG_STRING 4096
+#define MAX_ARGSDEFVAR 4096
 #define MAX_GIDS 1024
 
 #ifdef DEBUG
-# define BASE_MAGIC 0x5deb7567 /* "\x5d\xebug" */
+# define BASE_MAGIC 0x5deb7567UL /* "\x5d\xebug" */
 #else
-# define BASE_MAGIC 0x755e7276 /* "u\x5erv" */
+# define BASE_MAGIC 0x755e7276UL /* "u\x5erv" */
 #endif
 
 enum {
@@ -86,14 +86,16 @@ struct request_msg {
   int serviceuserlen;
   int servicelen;
   int lognamelen;
-  int cwdlen;
+  int cwdlen, overridelen;
   uid_t callinguid;
-  int ngids, nreadfds, nwritefds, nargs, nvars, overridelen;
+  int ngids, nreadfds, nwritefds, nargs, nvars;
   /* Followed by:
    *   serviceuserlen bytes for the service user (unterminated)
    *   servicelen bytes for the service (unterminated)
    *   lognamelen bytes for the login name (unterminated)
    *   cwdlen bytes for the cwd (unterminated)
+   *   overridelen bytes for the override data (with extra \n but unterminated),
+   *    or nothing if overridelen==-1
    *   ngids gid_ts for the primary group and supplementary groups
    *   nreadfds and then nwritefds ints for the file descriptors
    *   for each of the nargs arguments
@@ -116,10 +118,9 @@ struct progress_msg {
     struct { int status; } terminated;
   } data;
   /* follwed by variable-length part:
-   *  for ok: nothing
-   *  for errmsg: messagelen bytes for the error message (unterminated)
-   *              unsigned long PROGRESS_MAGIC
-   *  for terminated: nothing
+   *  for ok, failed, terminated: nothing
+   *  for errmsg: messagelen bytes for the error message (unterminated, no \n)
+   *              unsigned long PROGRESS_ERRMSG_END_MAGIC
    */
 };