chiark / gitweb /
Upgrade licence to GPLv3+.
[userv.git] / common.h
index f73ea4d876c73da5780310d1369ba3f3152cfe32..bf600469a184684cc0239381d15f1988967c9018 100644 (file)
--- a/common.h
+++ b/common.h
@@ -2,11 +2,14 @@
  * userv - common.h
  * definitions shared between client and daemon
  *
- * Copyright (C)1996-1997 Ian Jackson
+ * userv is
+ * Copyright 1996-2017 Ian Jackson <ian@davenant.greenend.org.uk>.
+ * Copyright 2000      Ben Harris <bjh21@cam.ac.uk>
+ * Copyright 2016-2017 Peter Benie <pjb1008@cam.ac.uk>
  *
  * This is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with userv; if not, write to the Free Software
- * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * along with userv; if not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef COMMON_H
 #define COMMON_H
 
+#define COPYRIGHT(indent,nl)                                           \
+ indent "Copyright (C)1996-2012 Ian Jackson; copyright (C)2000 Ben Harris." nl \
+ indent "there is NO WARRANTY; type `userv --copyright' for details." nl
+
 #define PCSUMSIZE 16
 
 static const unsigned char protocolchecksumversion[PCSUMSIZE]= {
@@ -77,22 +83,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