81 lines
2.4 KiB
C
81 lines
2.4 KiB
C
--- src/rdist.c.orig 1998-11-09 20:13:50.000000000 -0800
|
|
+++ src/rdist.c 2024-03-19 09:08:42.194504000 -0700
|
|
@@ -62,8 +62,8 @@
|
|
char *distfile = NULL; /* Name of distfile to use */
|
|
int maxchildren = MAXCHILDREN; /* Max no of concurrent PIDs */
|
|
int nflag = 0; /* Say without doing */
|
|
-long min_freespace = 0; /* Min filesys free space */
|
|
-long min_freefiles = 0; /* Min filesys free # files */
|
|
+int64_t min_freespace = 0; /* Min filesys free space */
|
|
+int64_t min_freefiles = 0; /* Min filesys free # files */
|
|
FILE *fin = NULL; /* Input file pointer */
|
|
struct group *gr = NULL; /* Static area for getgrent */
|
|
char localmsglist[] = "stdout=all:notify=all:syslog=nerror,ferror";
|
|
@@ -72,6 +72,8 @@
|
|
FILE *opendist();
|
|
char *path_rdistd = _PATH_RDISTD;
|
|
char *path_remsh = _PATH_REMSH;
|
|
+char *path_remsh_env;
|
|
+#define RDIST_RSH_ENV "RDIST_RSH"
|
|
|
|
/*
|
|
* Add a hostname to the host list
|
|
@@ -107,12 +109,13 @@
|
|
register char *cp;
|
|
int cmdargs = 0;
|
|
int c;
|
|
+ const char *errstr;
|
|
|
|
/*
|
|
* We initialize progname here instead of init() because
|
|
* things in msgparseopts() need progname set.
|
|
*/
|
|
- setprogname(argv);
|
|
+ progname = basename(argv[0]);
|
|
|
|
if (cp = msgparseopts(localmsglist, TRUE)) {
|
|
error("Bad builtin log option (%s): %s.",
|
|
@@ -155,6 +158,17 @@
|
|
fatalerr("This version of rdist should not be installed setuid.");
|
|
#endif /* DIRECT_RCMD */
|
|
|
|
+ path_remsh_env = getenv(RDIST_RSH_ENV);
|
|
+ if (path_remsh_env) {
|
|
+ if (cp = searchpath(path_remsh_env))
|
|
+ path_remsh = strdup(cp);
|
|
+ else {
|
|
+ error("Environment incorrect: No component of path \"%s\" exists.",
|
|
+ path_remsh_env);
|
|
+ exit(1);
|
|
+ }
|
|
+ }
|
|
+
|
|
while ((c = getopt(argc, argv, optchars)) != -1)
|
|
switch (c) {
|
|
case 'l':
|
|
@@ -176,10 +190,20 @@
|
|
error("\"%s\" is not a number.", optarg);
|
|
usage();
|
|
}
|
|
- if (c == 'a')
|
|
- min_freespace = atoi(optarg);
|
|
- else if (c == 'A')
|
|
- min_freefiles = atoi(optarg);
|
|
+ if (c == 'a') {
|
|
+ min_freespace = (int64_t)strtonum(optarg,
|
|
+ 0, LLONG_MAX, &errstr);
|
|
+ if (errstr)
|
|
+ fatalerr("Minimum free space is %s: "
|
|
+ "'%s'", errstr, optarg);
|
|
+ }
|
|
+ else if (c == 'A') {
|
|
+ min_freefiles = (int64_t)strtonum(optarg,
|
|
+ 0, LLONG_MAX, &errstr);
|
|
+ if (errstr)
|
|
+ fatalerr("Minimum free files is %s: "
|
|
+ "'%s'", errstr, optarg);
|
|
+ }
|
|
else if (c == 'M')
|
|
maxchildren = atoi(optarg);
|
|
else if (c == 't')
|