Annotation of 43BSD/old/berknet/defs.h, revision 1.1

1.1     ! root        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:        }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.