X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/ca9611a82afe7bd7d3fc6377c3b2453e11ec425d..6be9699a5b93d72861cf1e868ed2a0e80e005ab5:/usr/src/usr.bin/rdist/defs.h diff --git a/usr/src/usr.bin/rdist/defs.h b/usr/src/usr.bin/rdist/defs.h index 0ab56e95ef..f485c101e7 100644 --- a/usr/src/usr.bin/rdist/defs.h +++ b/usr/src/usr.bin/rdist/defs.h @@ -1,62 +1,125 @@ -/* defs.h 4.1 83/09/07 */ +/* defs.h 4.15 85/02/04 */ #include #include #include #include #include -#include -#include +#include #include #include #include #include -#define MAILCMD "/usr/lib/sendmail -i -t" +/* + * The version number should be changed whenever the protocol changes. + */ +#define VERSION 3 + +#define MAILCMD "/usr/lib/sendmail -oi -t" /* defines for yacc */ -#define EQUAL 1 -#define ARROW 2 -#define LP 3 -#define RP 4 -#define NAME 5 -#define INSTALL 6 -#define VERIFY 7 -#define NOTIFY 8 -#define EXCEPT 9 +#define EQUAL 1 +#define LP 2 +#define RP 3 +#define SM 4 +#define ARROW 5 +#define COLON 6 +#define DCOLON 7 +#define NAME 8 +#define STRING 9 +#define INSTALL 10 +#define NOTIFY 11 +#define EXCEPT 12 +#define PATTERN 13 +#define SPECIAL 14 +#define OPTION 15 + + /* lexical definitions */ +#define QUOTE 0200 /* used internally for quoted characters */ +#define TRIM 0177 /* Mask to strip quote bit */ /* table sizes */ -#define HASHSIZE 1021 -#define INMAX 3500 +#define HASHSIZE 1021 +#define INMAX 3500 + + /* option flags */ +#define VERIFY 0x1 +#define WHOLE 0x2 +#define YOUNGER 0x4 +#define COMPARE 0x8 +#define REMOVE 0x10 +#define FOLLOW 0x20 +#define IGNLNKS 0x40 + + /* expand type definitions */ +#define E_VARS 0x1 +#define E_SHELL 0x2 +#define E_TILDE 0x4 +#define E_ALL 0x7 + + /* actions for lookup() */ +#define LOOKUP 0 +#define INSERT 1 +#define REPLACE 2 + +#define ISDIR(m) (((m) & S_IFMT) == S_IFDIR) #define ALLOC(x) (struct x *) malloc(sizeof(struct x)) -struct block { - int b_type; - char *b_name; - struct block *b_next; - struct block *b_args; +struct namelist { /* for making lists of strings */ + char *n_name; + struct namelist *n_next; +}; + +struct subcmd { + short sc_type; /* type - INSTALL,NOTIFY,EXCEPT,SPECIAL */ + short sc_options; + char *sc_name; + struct namelist *sc_args; + struct subcmd *sc_next; +}; + +struct cmd { + int c_type; /* type - ARROW,DCOLON */ + char *c_name; /* hostname or time stamp file name */ + char *c_label; /* label for partial update */ + struct namelist *c_files; + struct subcmd *c_cmds; + struct cmd *c_next; +}; + +struct linkbuf { + ino_t inum; + dev_t devnum; + int count; + char pathname[BUFSIZ]; + struct linkbuf *nextp; }; extern int debug; /* debugging flag */ extern int nflag; /* NOP flag, don't execute commands */ extern int qflag; /* Quiet. don't print messages */ -extern int vflag; /* verify only */ -extern int yflag; /* update iff remote younger than master */ +extern int options; /* global options */ -extern int errs; /* number of errors seen */ +extern int nerrs; /* number of errors seen */ extern int rem; /* remote file descriptor */ extern int iamremote; /* acting as remote server */ -extern int filec; /* number of files to update */ -extern char **filev; /* list of files/directories to update */ -extern char *tmpfile; /* file name for logging changes */ +extern char tmpfile[]; /* file name for logging changes */ +extern struct linkbuf *ihead; /* list of files with more than one link */ +extern struct passwd *pw; /* pointer to static area used by getpwent */ +extern struct group *gr; /* pointer to static area used by getgrent */ extern char host[]; /* host name of master copy */ -extern char *rhost; /* host name of remote being updated */ -extern struct block *except; /* list of files to exclude */ extern char buf[]; /* general purpose buffer */ extern int errno; /* system error number */ extern char *sys_errlist[]; -struct block *lookup(); -struct block *expand(); +char *makestr(); +struct namelist *makenl(); +struct subcmd *makesubcmd(); +struct namelist *lookup(); +struct namelist *expand(); +char *exptilde(); +char *malloc(); char *rindex(); +char *index();