chiark / gitweb /
@@ -1,9 +1,11 @@
[userv.git] / common.h
index 2a2db41eb2c315b63ff26c0549b44ffca324f74a..6b287da54dc7f833065bcfc8fc88ee1c5e01f569 100644 (file)
--- a/common.h
+++ b/common.h
@@ -2,7 +2,7 @@
  * userv - common.h
  * definitions shared between client and daemon
  *
- * Copyright (C)1996-1997 Ian Jackson
+ * Copyright (C)1996-1997,1999 Ian Jackson
  *
  * This is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by
@@ -43,13 +43,13 @@ 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(unsigned long)*2*2+sizeof(int)*2+3)
-# define PIPEMAXLEN (sizeof(PIPEFORMAT)+PIPEFORMATEXTEND)
+# define PIPEFORMATEXTEND ((int)(sizeof(unsigned long)*2*2+(int)sizeof(int)*2+3))
+# define PIPEMAXLEN ((int)(sizeof(PIPEFORMAT)+PIPEFORMATEXTEND))
 #endif
 
 #ifndef PIPEPATHFORMAT
 # define PIPEPATHFORMAT VARDIR "/" PIPEFORMAT
-# define PIPEPATHMAXLEN (sizeof(PIPEPATHFORMAT)+PIPEFORMATEXTEND)
+# define PIPEPATHMAXLEN ((int)(sizeof(PIPEPATHFORMAT)+PIPEFORMATEXTEND))
 #endif
 
 #define MAX_ALLOW_FD 1024
@@ -77,22 +77,22 @@ enum {
 struct opening_msg {
   unsigned long magic;
   unsigned char protocolchecksumversion[PCSUMSIZE];
-  pid_t serverpid;
+  pid_t overlordpid, serverpid;
 };
 
 struct request_msg {
   unsigned long magic;
-  pid_t clientpid;
+  pid_t clientpid; /* or -1 if no service is required and this was a version check */
   int serviceuserlen;
   int servicelen;
-  int lognamelen;
+  int loginnamelen, spoofed; /* spoofed is 0 or 1 */
   int cwdlen, overridelen;
   uid_t callinguid;
   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)
+   *   loginnamelen 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