1: /*	@(#)defs.h	4.1	(Berkeley)	9/12/82	*/
   2: 
   3: /* sccs id variable */
   4: static char *defs_h_sid = "@(#)defs.h	1.5";
   5: /*
   6:    get all the machine dependencies, standard I/O, and the
   7:    configuration definitions (LOCAL machine, etc.)
   8: */
   9: 
  10: # include <stdio.h>
  11: 
  12: # define min(a,b) (a > b ? b : a)
  13: # define getremote(S) (remtable[(S)-'a'])
  14: 
  15: /* adjustable parameters, may differ per machine */
  16: 
  17: # define MAXBREAD   3
  18: # define ATIME      20
  19: # define DBV        0
  20: # define BLOCKSIZE  500
  21: # define SIZE       100
  22: # define INITFILE   "/usr/net/initfile"
  23: # define NSEND      20
  24: # define SAMPL      3600        /* 1 hour = 3600 */
  25: # define BIGSAMPL   64800L      /* 18 hours = 64800L */
  26: # define LINKS      9
  27: # define SUPERUSER  0
  28: /* the size of routing tables, etc. */
  29: # define MAXINX     26
  30: 
  31: /* adjustable parameters, must be same on all machines */
  32: 
  33: /* MAXFILELARGE is the file size limit.  If changed on one machine
  34:    but not the others, files bigger than the common minimum will
  35:    be flushed with no guarantee of err msgs. Thus if one link
  36:    is to be of a different limit than the others, make sure the users
  37:    know this.
  38:    MAXDAYFILE is the largest file that will be transmitted across the
  39:    network during the day on CC machines.
  40: */
  41: # define MAXFILELARGE   500000L
  42: # define MAXDAYFILE 200000L
  43: /* the version of the protocol the network speaks */
  44: # define VMAJOR     1
  45: # define VMINOR     0
  46: /* the time constant added to all time stamps sent around the net */
  47: # define TIMEBASE   282098011L
  48: /* the number of mail forwarding hops allowed before looping is detected */
  49: # define MAXHOPS    30
  50: /* the buffer size used in prot.c */
  51: # define MAXNBUF 1024
  52: 
  53: /* non-adjustable constants */
  54: 
  55: /* PARMLIST = max size of variable length parm list used in protocol */
  56: # define PARMLIST 2000
  57: /* FNS = max length of file name string */
  58: # define FNS 80
  59: /* NS = length of UNIX user name*/
  60: # define NS 10
  61: /* returned by prot.c */
  62: # define BROKENREAD -2
  63: # define WRITEFAIL -3
  64: # define INCR 040
  65: # define MINSIZE 50
  66: # define TRUE 1
  67: # define FALSE 0
  68: 
  69: /* flags for packet type (pcode) */
  70: # define REQUEST 02
  71: # define ACK 04
  72: # define PURGE 020
  73: 
  74: /* flags for mach type */
  75: # define M_CC 2
  76: # define M_INGRES 4
  77: # define M_OTHER 6
  78: 
  79: /* codes for cflag, powers of two, max (8 bits - 'a'), others may be added */
  80: 
  81: /* F_QUIET means send back only error messages and output of programs,
  82:    don't send back confimation with no data */
  83: /* F_NONOTIFY means don't send back anything, ever,
  84:    even if there are errors (used for responses, etc.) */
  85: 
  86: # define F_QUIET    02
  87: # define F_NONOTIFY     04
  88: 
  89: 
  90: /*
  91:    at this point bring in the locally-dependent definitions.
  92:    this way the above parms may be altered.
  93: */
  94: /* strings for the netsend and netrecieve logins */
  95: # define RESP   "hello hello this is a network"
  96: # define RESPSIZE 29
  97: # define QUERY  "This login for network use only"
  98: # define QSIZE 31
  99: # define WHOAREYOU "who are you?"
 100: # define WHOSIZE 12
 101: 
 102: # include "mach.h"
 103: # include "Paths.h"
 104: /* bring in the exit codes */
 105: # include <sysexits.h>
 106: 
 107: /* structure declarations */
 108: struct packet {
 109:     short seqno;
 110:     char pcode;
 111:     short len;
 112:     char chksum;
 113:     char data[1];
 114:     };
 115: 
 116: struct packet *packptr; /* just used to get the sizeof to work */
 117: # define ACKLENGTH (sizeof *packptr - 1)
 118: /* these are the lengths to be read and writ if using high-speed block dev. */
 119: /* must be bigger than ACKLENGTH */
 120: # define SENDLEN 256
 121: 
 122: /* the chksum is only on a per-perpacket level,
 123:    which is not enough.
 124:    There should be a checksum on the entire file as well.
 125:    */
 126: struct dumpstruc {
 127:     long longtime, elaptot;             /* in secs */
 128:     long nbytesent,nbytercv, bytetot;       /* in bytes */
 129:     long lastndays;                 /* in days */
 130:     long braw, brawtot;             /* raw bytes*/
 131:     int nretrans, nabnormal, nloop;
 132:     int ncksum,npacksent,npackrcv;
 133:     int nnetcp,nnetlpr,nsmail,nnetmail,nresp,nnet;
 134:     int npass, nsend, nsendfail;
 135:     };
 136: 
 137: struct bstruct {
 138:     char *bname;
 139:     char bmach;
 140:     };
 141: /* functions */
 142: 
 143: char *calloc(), *crypt(), *ctime(), *getenv(), *longname();
 144: char *comptime(), *getpass(), *handlesp();
 145: FILE *fopen(), *fdopen(), *popen(), *mailopen();
 146: struct passwd *getpwnam(), *getpwuid(), *PwdCurrent(), *getpwent();
 147: struct packet *getpacket();
 148: long atol();
 149: 
 150: /* constant variables */
 151: extern char *sys_errlist[];
 152: char netcmd[],senddir[], resfile[], Bsh[];
 153: char machtype[], remtable[];
 154: char local;
 155: 
 156: /* variables which are modified */
 157: extern errno;
 158: int debugflg;
 159: char remote;        /* must be global, remote is not initialized*/
 160: 
 161: /* various structure types */
 162: 
 163: /* used to pass around info about user */
 164: struct userinfo {
 165:     char    login[NS];
 166:     char    mpasswd[20];
 167:     int     muid;       /* combines uid and gid for FUID */
 168:     int     mgid;       /* unused for FUID */
 169:     char    jobno[10];  /* CC crn, length = 0 if null and not */
 170:                 /*      CC machine (else MAGICCRN ) */
 171:     char    dir[FNS];   /* login directory */
 172:     char    loginshell[FNS];/* login shell */
 173:     char    localname[NS];
 174:     char    defcmd[FNS];
 175:     char    force;      /* if true, always prompt for login and pass */
 176:     char    nonotify;   /* if true, don't send anything back */
 177:     char    nowrite;    /* if true, mail rather than write to user */
 178:     char    quiet;      /* if true, only send a response back if rc !=0
 179: 				   or if there is stdout or stderr */
 180:     } ;
 181: 
 182: /* unique message - id sent with requests */
 183: struct messageid {
 184:     char    msg_mch;    /* machine it is on */
 185:     int     msg_pid;    /* process id */
 186:     long    msg_ltime;  /* current time */
 187: };
 188: 
 189: /* header which describes information transferred across the link */
 190: struct header {
 191:     char    hd_mchto;       /* 1-letter code for dest. machine */
 192:     char    hd_mchfrom;     /* 1-letter code for source machine */
 193:     char    hd_snto[NS];        /* login name on mchto mach */
 194:     char    hd_snfrom[NS];      /* login name on mchfrom mach */
 195:     char    hd_spasswd[20];     /* password for snto */
 196:     char    hd_code;        /* request code in protocol */
 197:     char    hd_fnonotify;       /* if true, don't send anything back */
 198:     char    hd_fquiet;      /* if true, only send back if error */
 199:     char    hd_vmajor;      /* major version number */
 200:     char    hd_vminor;      /* minor version number */
 201:     char    hd_sttyname[20];    /* tty user is on,e.g. /dev/tty0 */
 202:     char    hd_scmdact[BUFSIZ]; /* the actual cmd the net will exec */
 203:     char    hd_scmdvirt[BUFSIZ];    /* the cmd the user thinks he is exec */
 204:     long    hd_lttytime;        /* the time for tty login in utmp */
 205:     long    hd_ltimesent;       /* the time the request was sent */
 206:     char    hd_srespfile[FNS];  /* response file name, if sepecified */
 207:     char    hd_sinfile[FNS];    /* remote input file, if sepecified */
 208:     char    hd_soutfile[FNS];   /* remote output file, if sepecified */
 209:     /* sent but not computed (always MAGICCRN or 0 length) across the net */
 210:     char    hd_ijobno[10];      /* CC job number, if applicable */
 211:     /* computed, not transferred across the net */
 212:     char    hd_addrto[FNS];     /* address of dest. acct */
 213:     char    hd_addrfrom[FNS];   /* address of source acct */
 214:     /* not now being sent over, will be someday, don't use now */
 215:     char    hd_sencpasswd[20];  /* encrypted passwd with nbs 2way enc */
 216:     int     hd_ifilemode;       /* file mode for netcp */
 217:     char    hd_sfndefault[FNS]; /* default filename ext, for netcp */
 218:     int hd_uidfrom;     /* userid on the from machine */
 219:     int     hd_gidfrom;     /* groupid on the from machine */
 220:     struct messageid hd_mesgid; /* message id unique to this request */
 221:     char    hd_fcompressed;     /* if true, data is compressed */
 222:     char    hd_facctpair;       /* if true, is an accnt pair w/o pwds */
 223:     char    hd_addrreplyto[FNS];    /* reply to this address */
 224: };
 225: 
 226: /*
 227: 	this structure defines the various parameters the daemon and testing
 228:    	programs use -- most of the info comes from netrc.c
 229: 	NOTE-- this structure is initialized in netrc.c
 230: 	don't add members without changing that structure
 231: */
 232: struct daemonparms {
 233:     int     dp_inspeed; /* for stty, 7=300, 9=1200, 13=9600 baud */
 234:     int     dp_outspeed;    /* for stty, 7=300, 9=1200, 13=9600 baud */
 235:     int     dp_maxbread;    /* number of read time outs allowed */
 236:     int     dp_atime;   /* time to set alarm for timeout */
 237:     int     dp_oatime;  /* default time alarm for timeout */
 238:     char    dp_device[20];  /* name of the network file, e.g. /dev/net-A*/
 239:     int     dp_datasize;    /* length of data part of packet */
 240:     int dp_trynetl; /* try to use netl, -l disables */
 241:     int     dp_onlyuid; /* if non-zero, only send this uid's things */
 242:     int dp_linefd;  /* daemon should read and write from this */
 243:     char    dp_usehispeed;  /* if true, use high-speed link */
 244:     char    dp_hispeedlink[20];/* device name of high speed link */
 245:     short   dp_sndorcv; /* if <0, only send, if > 0, only recieve */
 246:     int dp_linedis; /* line disc we use, normal is 0 */
 247:     int     dp_pipesim; /* simulate with pipes */
 248:     FILE    *dp_rdfile; /* if pipesim then should read from this */
 249:     int dp_pwritefd;    /* if pipesim then should write from this */
 250:     int dp_use8bit; /* use 8 bit protocol */
 251:     short   dp_timeout; /* timeout deamon (dialup) if > 0 */
 252: };
 253: 
 254: /* macro implementation of harg due to bugs in Onyx C compiler */
 255: # define harg(str) {\
 256:     if (argv[0][2]) \
 257:         strcpy(str, argv[0]+2); \
 258:     else \
 259:         { strcpy(str, argv[1]); argc--; argv++; } \
 260:     }

Defined variables

defs_h_sid defined in line 4; never used
machtype defined in line 153; used 3 times
packptr defined in line 116; used 1 times
remtable defined in line 153; used 1 times
  • in line 13
resfile defined in line 152; used 10 times
senddir defined in line 152; used 21 times

Defined struct's

bstruct defined in line 137; used 2 times
dumpstruc defined in line 126; used 6 times
header defined in line 190; used 28 times
messageid defined in line 183; used 2 times
  • in line 220(2)
packet defined in line 108; used 40 times

Defined macros

ACK defined in line 71; used 7 times
ACKLENGTH defined in line 117; used 6 times
ATIME defined in line 18; used 2 times
BIGSAMPL defined in line 25; never used
BLOCKSIZE defined in line 20; never used
FALSE defined in line 67; used 1 times
FNS defined in line 58; used 25 times
F_NONOTIFY defined in line 87; used 2 times
F_QUIET defined in line 86; used 2 times
INCR defined in line 64; used 9 times
INITFILE defined in line 22; used 1 times
LINKS defined in line 26; used 2 times
MAXBREAD defined in line 17; used 1 times
MAXDAYFILE defined in line 42; used 4 times
MAXFILELARGE defined in line 41; used 2 times
MAXHOPS defined in line 49; used 1 times
MAXNBUF defined in line 51; used 14 times
MINSIZE defined in line 65; used 1 times
M_CC defined in line 75; used 2 times
M_INGRES defined in line 76; never used
M_OTHER defined in line 77; never used
NS defined in line 60; used 8 times
NSEND defined in line 23; never used
PARMLIST defined in line 56; never used
PURGE defined in line 72; used 3 times
QSIZE defined in line 98; never used
QUERY defined in line 97; never used
REQUEST defined in line 70; used 4 times
RESP defined in line 95; never used
RESPSIZE defined in line 96; never used
SAMPL defined in line 24; never used
SENDLEN defined in line 120; used 5 times
SIZE defined in line 21; used 1 times
SUPERUSER defined in line 27; used 4 times
TRUE defined in line 66; used 12 times
VMAJOR defined in line 44; used 1 times
VMINOR defined in line 45; used 1 times
WHOAREYOU defined in line 99; never used
WHOSIZE defined in line 100; never used
min defined in line 12; used 5 times

Usage of this include

Last modified: 1982-09-13
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1956
Valid CSS Valid XHTML 1.0 Strict