B E R K E L E Y N E T W O R K The code in this directory is the most up-to-date network source on the machine. *** Pre-processor Flags *** This set of code is controlled by this set of conditional compilation flags: TESTING if defined, do not generate tests, etc. which require super-user status. OLDTTY if defined, compile for old 1 character TTY names CCTTY if defined, compile for CC tty name format if neither is defined, use v7 ttyname format PASSWDF compile in code to handle /etc/passwdf - split passwd files NEWPROT use the new protocol, instead of the default protocol V7 use the v7 features FUID use the funny uid's present on Cory and CC ROPTION The local machine mail program has the magic -r option ROPTION2 The local machine mail program has the magic -r option HPASSWD The local machine has the hashed password stuff SPACCT under certain circumstances, allow remote login without acct SPOOLMAIL mail is in /usr/spool/mail/name OLDMAIL mail is in home-directory/.mail (default is /usr/mail/name) CC machine is a Computer Center machine NUID userid (as returned by getuid()) on this machine UID1CHAR uses vanila Version6 userid's (only 1 byte for uid) NOEUID does not have the geteuid() system call At Berkeley, the conditonal flags are first defined in "/usr/include/whoami.h" on the local machine.. They are VAX, CORY, A, C, D, E, SRC. For "normal" version 6 machines, there is a dummy machine definition for "VANILLA6" which indicates the v6 UNIX options. For "normal" version 7 machines, there is a dummy machine definition for "VANILLA7" which indicates the v7 UNIX options. *** Adding a new machine To add another machine to the network, change these programs: The machine tables are all in config.h. 1. Change the path names in "Paths.h" and "nsh.c", and the makefile to suit. 2. Change "defs.h" to suit. 3. add in LOCALx section of config.h the usual information about the machine interconnections 4. add the name of the machine to the machine name table and its type to the machine type table 4.5 check routine "gothru" in sub.c 5. compile the network specifying the code type (CC, VAX, Cory, VANILLA) and the machine type *** Other files *** interact.c, listen.c - manually send packets speeds.c, speedr.c - send various length packets, use "time" to evaluate store.c, receive.c - send a file (use for backup) nettest.c - run daemons locally, using pipes instead of tty lines setmode.c - set the mode on the tty line driver to "cat" things thru *** Taxonomy of net pgms being sent around: Internal: sendberkmail, prmail, mmail, mwrite External: net, netcp, netlpr, netmail Other: netdaemon, netstart, netq, netrm *** Naming Conventions (in progress) *** The names of simple variables are composed of three parts. [type char] [string] [type tag] where typechar is one of i integer (int) l long integer (long) ch character (char) s string (char *) f logical (char) the (optional) string is any short descriptive string. the (optional) type tag is noe of (assume string is "foo"): fooMin minimum value of foo, for all foo, foo >= fooMin fooMax maximum value of foo, foo <= fooMax fooMac current maximum of foo, fooMin <= fooMac <= fooMax usually used for array substript fooOld old value of foo, as opposed to fooNew fooNew new value of foo, as opposes to fooOld Example: sdate a string containing a date sdateOld a string containing an old date sdateNew a string containing the "current" date Pointers pointer names are composed of the previous set of names precedd by a character "p", e.g. pch pointer to char (same as string) pi pointer to integer pltime pointer to a long with the time in it Counters Variables that count instances of things are preceded by 'n', e.g. nch number of chars nsdate number of date strings Indices Are stored as integers and preceded by 'i': ich index into char array is same as above Added types: uid userid as set by getuid() sn local name, w/o ':' fd (FILE *) file descriptor mch (char) 1 - letter machine code addr (char *) address, may include ':' Procedure names list parameters appear after procedure name, return value before. (Remember for external names only the first 7 characters are significant.) Compile Time Constants Are in upper-case. (Remember only first 8 characters are significant to the preprocessor). PROBLEMS If you have any problems or questions, don't hesitate to call me. Eric Schmidt 706 International House Berkeley, Cal. 94720 415-642-9365 415-642-9490 (messages) or C.S. Department Evans Hall U.C. Berkeley Berkeley, Cal. 94720 415-642-4951