static char *sccsid
= "@(#)main.c 4.1 (Berkeley) 83/09/07";
* Remote distribution program.
char *distfile
= "distfile";
char *tmpfile
= "/tmp/rdistXXXXXX";
int debug
; /* debugging flag */
int nflag
; /* NOP flag, just print commands without executing */
int qflag
; /* Quiet. Don't print messages */
int vflag
; /* verify only */
int yflag
; /* update iff remote younger than master */
int iamremote
; /* act as remote server for transfering files */
int filec
; /* number of files to update */
char **filev
; /* list of files/directories to update */
FILE *fin
= NULL
; /* input file pointer */
int rem
= 0; /* file descriptor to remote source/sink process */
char host
[32]; /* host name */
int errs
; /* number of errors while sending/receiving */
char user
[10]; /* user's name */
char homedir
[128]; /* user's home directory */
int userid
; /* user's user ID */
int usergid
; /* user's group ID */
register struct passwd
*pw
;
pw
= getpwuid(userid
= getuid());
fprintf(stderr
, "rdist: Who are you?\n");
strcpy(user
, pw
->pw_name
);
strcpy(homedir
, pw
->pw_dir
);
gethostname(host
, sizeof(host
));
if ((arg
= *++argv
)[0] != '-')
if (!strcmp(arg
, "-Server"))
if (distfile
[0] == '-' && distfile
[1] == '\0')
signal(SIGPIPE
, lostconn
);
if (fin
== NULL
&& (fin
= fopen(distfile
, "r")) == NULL
) {
signal(SIGQUIT
, cleanup
);
signal(SIGTERM
, cleanup
);
printf("Usage: rdist [-f distfile] [-n] [-q] [-y] [-d] [file ...]\n");
* Remove temporary files and do any cleanup operations before exiting.
* Print a list of NAME blocks (mostly for debugging).
register struct block
*bp
;
printf("%s ", bp
->b_name
);
fprintf(stderr
, "rdist: line %d: Warning: ", yylineno
);
fprintf(stderr
, fmt
, a1
, a2
, a3
);