summaryrefslogtreecommitdiff
path: root/net/rdist7/files/patch-src_server.c
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2024-03-19 20:00:09 -0700
committerCy Schubert <cy@FreeBSD.org>2024-03-19 20:02:33 -0700
commit8d98ac3e234f39a63dafbec5771ca2822f673597 (patch)
treec9cea49ca3e67fb622f5491c11d45a5638d59b22 /net/rdist7/files/patch-src_server.c
parentnet/rdist6: Document license (diff)
net/rdist7: Add new port
Add new rdist7 port packaging rdist 7.0.0-alpha10.
Diffstat (limited to 'net/rdist7/files/patch-src_server.c')
-rw-r--r--net/rdist7/files/patch-src_server.c146
1 files changed, 146 insertions, 0 deletions
diff --git a/net/rdist7/files/patch-src_server.c b/net/rdist7/files/patch-src_server.c
new file mode 100644
index 000000000000..844489a47f8c
--- /dev/null
+++ b/net/rdist7/files/patch-src_server.c
@@ -0,0 +1,146 @@
+--- src/server.c.orig 2001-10-22 13:29:22.000000000 -0700
++++ src/server.c 2024-03-19 19:42:42.143575000 -0700
+@@ -91,8 +91,8 @@
+ int catname = 0; /* cat name to target name */
+ char *sptarget[128]; /* stack of saved ptarget's for directories */
+ char *fromhost = NULL; /* Client hostname */
+-static long min_freespace = 0; /* Minimium free space on a filesystem */
+-static long min_freefiles = 0; /* Minimium free # files on a filesystem */
++static int64_t min_freespace = 0; /* Minimium free space on a filesystem */
++static int64_t min_freefiles = 0; /* Minimium free # files on a filesystem */
+ int oumask; /* Old umask */
+
+ /*
+@@ -172,7 +172,7 @@
+ /*
+ * Set mode of a file
+ */
+-static int setmode(file, fd, mode, link)
++static int rdist_setmode(file, fd, mode, link)
+ char *file;
+ int fd;
+ int mode;
+@@ -355,7 +355,7 @@
+ mode &= ~S_ISGID;
+ }
+ }
+- (void) setmode(file, fd, mode, S_ISLNK(st.st_mode));
++ (void) rdist_setmode(file, fd, mode, S_ISLNK(st.st_mode));
+
+ return(0);
+ }
+@@ -921,13 +921,13 @@
+ wrerr = 0;
+ olderrno = 0;
+ for (i = 0; i < size; i += BUFSIZ) {
+- int amt = BUFSIZ;
++ off_t amt = BUFSIZ;
+
+ cp = buf;
+ if (i + amt > size)
+ amt = size - i;
+ do {
+- int j;
++ ssize_t j;
+
+ if (rem_rz)
+ j = readremz(cp, amt);
+@@ -1538,6 +1538,7 @@
+ {
+ register char *cp = cmd;
+ char *estr;
++ const char *errstr;
+
+ switch (*cp++) {
+ case SC_HOSTNAME: /* Set hostname */
+@@ -1554,19 +1555,15 @@
+ break;
+
+ case SC_FREESPACE: /* Minimium free space */
+- if (!isdigit(*cp)) {
+- fatalerr("Expected digit, got '%s'.", cp);
+- return;
+- }
+- min_freespace = (unsigned long) atoi(cp);
++ min_freespace = (int64_t)strtonum(cp, 0, LLONG_MAX, &errstr);
++ if (errstr)
++ fatalerr("Minimum free space is %s: '%s'", errstr, optarg);
+ break;
+
+ case SC_FREEFILES: /* Minimium free files */
+- if (!isdigit(*cp)) {
+- fatalerr("Expected digit, got '%s'.", cp);
+- return;
+- }
+- min_freefiles = (unsigned long) atoi(cp);
++ min_freefiles = (int64_t)strtonum(cp, 0, LLONG_MAX, &errstr);
++ if (errstr)
++ fatalerr("Minimum free files is %s: '%s'", errstr, optarg);
+ break;
+
+ case SC_LOGGING: /* Logging options */
+@@ -1608,7 +1605,7 @@
+ char new[MAXPATHLEN];
+ int newfd = -1;
+ char fileb[MAXPATHLEN];
+- long freespace = -1, freefiles = -1;
++ int64_t freespace = -1, freefiles = -1;
+ char *cp = cmd;
+ char *name;
+
+@@ -1633,7 +1630,7 @@
+ /*
+ * Get file size
+ */
+- size = strtol(cp, &cp, 10);
++ size = (off_t) strtoll(cp, &cp, 10);
+ if (*cp++ != ' ') {
+ error("recvit: size not delimited");
+ return;
+@@ -1642,7 +1639,7 @@
+ /*
+ * Get modification time
+ */
+- mtime = strtol(cp, &cp, 10);
++ mtime = (time_t) strtol(cp, &cp, 10);
+ if (*cp++ != ' ') {
+ error("recvit: mtime not delimited");
+ return;
+@@ -1692,8 +1689,8 @@
+ file = fileb;
+
+ debugmsg(DM_MISC,
+- "recvit: opts = %04o mode = %04o size = %d mtime = %d",
+- opts, mode, size, mtime);
++ "recvit: opts = %04o mode = %04o size = %lld mtime = %d",
++ opts, mode, (long long) size, mtime);
+ debugmsg(DM_MISC,
+ "recvit: owner = '%s' group = '%s' file = '%s' catname = %d isdir = %d",
+ owner, group, file, catname, (type == S_IFDIR) ? 1 : 0);
+@@ -1749,7 +1746,7 @@
+ */
+ if (min_freespace || min_freefiles) {
+ /* Convert file size to kilobytes */
+- long fsize = (long) (size / 1024);
++ int64_t fsize = (int64_t)size / 1024;
+
+ if (getfilesysinfo(target, &freespace, &freefiles) != 0) {
+ (void) close(newfd);
+@@ -1764,7 +1761,7 @@
+ if (min_freespace && (freespace >= 0) &&
+ (freespace - fsize < min_freespace)) {
+ error(
+- "%s: Not enough free space on filesystem: min %d free %d",
++ "%s: Not enough free space on filesystem: min %lld free %lld",
+ target, min_freespace, freespace);
+ (void) close(newfd);
+ (void) unlink(new);
+@@ -1773,7 +1770,7 @@
+ if (min_freefiles && (freefiles >= 0) &&
+ (freefiles - 1 < min_freefiles)) {
+ error(
+- "%s: Not enough free files on filesystem: min %d free %d",
++ "%s: Not enough free files on filesystem: min %lld free %lld",
+ target, min_freefiles, freefiles);
+ (void) close(newfd);
+ (void) unlink(new);