praszyk 08c5489
--- netkit-ftp-0.17/ftp/ftp.c.rasold	2005-08-22 14:22:50.000000000 +0200
praszyk 08c5489
+++ netkit-ftp-0.17/ftp/ftp.c	2005-08-22 14:23:02.000000000 +0200
praszyk 08c5489
@@ -139,7 +139,7 @@
praszyk 08c5489
 static char *gunique(char *);
praszyk 08c5489
 static void proxtrans(const char *cmd, char *local, char *remote);
praszyk 08c5489
 static int initconn(void);
praszyk 08c5489
-static void ptransfer(const char *direction, long bytes, 
praszyk 08c5489
+static void ptransfer(const char *direction, long long bytes, 
praszyk 08c5489
 		      const struct timeval *t0, 
praszyk 08c5489
 		      const struct timeval *t1);
praszyk 08c5489
 static void tvsub(struct timeval *tdiff, 
praszyk 08c5489
@@ -579,7 +579,7 @@
praszyk 08c5489
 	int (*volatile closefunc)(FILE *);
praszyk 08c5489
 	void (*volatile oldintr)(int);
praszyk 08c5489
 	void (*volatile oldintp)(int);
praszyk 08c5489
-	volatile long bytes = 0, hashbytes = HASHBYTES;
praszyk 08c5489
+	volatile long long bytes = 0, hashbytes = HASHBYTES;
praszyk 08c5489
 	char buf[BUFSIZ], *bufp;
praszyk 08c5489
 	const char *volatile lmode;
praszyk 08c5489
 
praszyk 08c5489
@@ -713,14 +713,14 @@
praszyk 08c5489
 				if ((d = write(fileno(dout), bufp, c)) <= 0)
praszyk 08c5489
 					break;
praszyk 08c5489
 			if (hash) {
praszyk 08c5489
-				while (bytes >= hashbytes) {
praszyk 08c5489
-					(void) putchar('#');
praszyk 08c5489
-					hashbytes += HASHBYTES;
praszyk 08c5489
-				}
praszyk 08c5489
-				(void) fflush(stdout);
praszyk 08c5489
-			}
praszyk 08c5489
+				while (bytes >= hashbytes) {        /* <-- 'long long' signed overflow is  */
praszyk 08c5489
+					(void) putchar('#');        /* possible. In this case, we can      */
praszyk 08c5489
+					hashbytes += HASHBYTES;     /* 'cycle' there for very long time.   */
praszyk 08c5489
+				}                                   /* Search 'hasbytes' in file down,     */
praszyk 08c5489
+				(void) fflush(stdout);              /* there are similar parts.            */
praszyk 08c5489
+			}                                           /*           <praszyk@redhat.com>      */
praszyk 08c5489
 			if (tick && (bytes >= hashbytes)) {
praszyk 08c5489
-				printf("\rBytes transferred: %ld", bytes);
praszyk 08c5489
+				printf("\rBytes transferred: %lld", bytes);
praszyk 08c5489
 				(void) fflush(stdout);
praszyk 08c5489
 				while (bytes >= hashbytes)
praszyk 08c5489
 					hashbytes += TICKBYTES;
praszyk 08c5489
@@ -733,7 +733,7 @@
praszyk 08c5489
 			(void) fflush(stdout);
praszyk 08c5489
 		}
praszyk 08c5489
 		if (tick) {
praszyk 08c5489
-			(void) printf("\rBytes transferred: %ld\n", bytes);
praszyk 08c5489
+			(void) printf("\rBytes transferred: %lld\n", bytes);
praszyk 08c5489
 			(void) fflush(stdout);
praszyk 08c5489
 		}
praszyk 08c5489
 		if (c < 0)
praszyk 08c5489
@@ -755,7 +755,7 @@
praszyk 08c5489
 					hashbytes += HASHBYTES;
praszyk 08c5489
 				}
praszyk 08c5489
 				if (tick && (bytes >= hashbytes)) {
praszyk 08c5489
-					(void) printf("\rBytes transferred: %ld",
praszyk 08c5489
+					(void) printf("\rBytes transferred: %lld",
praszyk 08c5489
 						bytes);
praszyk 08c5489
 					(void) fflush(stdout);
praszyk 08c5489
 					while (bytes >= hashbytes)
praszyk 08c5489
@@ -780,7 +780,7 @@
praszyk 08c5489
 			(void) fflush(stdout);
praszyk 08c5489
 		}
praszyk 08c5489
 		if (tick) {
praszyk 08c5489
-			(void) printf("\rBytes transferred: %ld\n", bytes);
praszyk 08c5489
+			(void) printf("\rBytes transferred: %lld\n", bytes);
praszyk 08c5489
 			(void) fflush(stdout);
praszyk 08c5489
 		}
praszyk 08c5489
 		if (ferror(fin))
praszyk 08c5489
@@ -853,9 +853,9 @@
praszyk 08c5489
 	void (*volatile oldintp)(int);
praszyk 08c5489
 	void (*volatile oldintr)(int);
praszyk 08c5489
 	volatile int is_retr, tcrflag, bare_lfs = 0;
praszyk 08c5489
-	static unsigned bufsize;
praszyk 08c5489
+	static unsigned bufsize=0;
praszyk 08c5489
 	static char *buf;
praszyk 08c5489
-	volatile long bytes = 0, hashbytes = HASHBYTES;
praszyk 08c5489
+	volatile long long bytes = 0, hashbytes = HASHBYTES;
praszyk 08c5489
 	register int c, d;
praszyk 08c5489
 	struct timeval start, stop;
praszyk 08c5489
 	struct stat st;
praszyk 08c5489
@@ -1031,7 +1031,7 @@
praszyk 08c5489
 				(void) fflush(stdout);
praszyk 08c5489
 			}
praszyk 08c5489
 			if (tick && (bytes >= hashbytes) && is_retr) {
praszyk 08c5489
-				(void) printf("\rBytes transferred: %ld",
praszyk 08c5489
+				(void) printf("\rBytes transferred: %lld",
praszyk 08c5489
 					bytes);
praszyk 08c5489
 				(void) fflush(stdout);
praszyk 08c5489
 				while (bytes >= hashbytes)
praszyk 08c5489
@@ -1045,7 +1045,7 @@
praszyk 08c5489
 			(void) fflush(stdout);
praszyk 08c5489
 		}
praszyk 08c5489
 		if (tick && is_retr) {
praszyk 08c5489
-			(void) printf("\rBytes transferred: %ld\n", bytes);
praszyk 08c5489
+			(void) printf("\rBytes transferred: %lld\n", bytes);
praszyk 08c5489
 			(void) fflush(stdout);
praszyk 08c5489
 		}
praszyk 08c5489
 		if (c < 0) {
praszyk 08c5489
@@ -1095,7 +1095,7 @@
praszyk 08c5489
 					hashbytes += HASHBYTES;
praszyk 08c5489
 				}
praszyk 08c5489
 				if (tick && (bytes >= hashbytes) && is_retr) {
praszyk 08c5489
-					printf("\rBytes transferred: %ld",
praszyk 08c5489
+					printf("\rBytes transferred: %lld",
praszyk 08c5489
 						bytes);
praszyk 08c5489
 					fflush(stdout);
praszyk 08c5489
 					while (bytes >= hashbytes)
praszyk 08c5489
@@ -1126,7 +1126,7 @@
praszyk 08c5489
 			(void) fflush(stdout);
praszyk 08c5489
 		}
praszyk 08c5489
 		if (tick && is_retr) {
praszyk 08c5489
-			(void) printf("\rBytes transferred: %ld\n", bytes);
praszyk 08c5489
+			(void) printf("\rBytes transferred: %lld\n", bytes);
praszyk 08c5489
 			(void) fflush(stdout);
praszyk 08c5489
 		}
praszyk 08c5489
 		if (bare_lfs) {
praszyk 08c5489
@@ -1540,7 +1540,7 @@
praszyk 08c5489
 }
praszyk 08c5489
 
praszyk 08c5489
 static void
praszyk 08c5489
-ptransfer(const char *direction, long bytes, 
praszyk 08c5489
+ptransfer(const char *direction, long long bytes, 
praszyk 08c5489
 	  const struct timeval *t0, 
praszyk 08c5489
 	  const struct timeval *t1)
praszyk 08c5489
 {
praszyk 08c5489
@@ -1552,7 +1552,7 @@
praszyk 08c5489
 		s = td.tv_sec + (td.tv_usec / 1000000.);
praszyk 08c5489
 #define	nz(x)	((x) == 0 ? 1 : (x))
praszyk 08c5489
 		bs = bytes / nz(s);
praszyk 08c5489
-		printf("%ld bytes %s in %.3g secs (%.2g Kbytes/sec)\n",
praszyk 08c5489
+		printf("%lld bytes %s in %.3g secs (%.2g Kbytes/sec)\n",
praszyk 08c5489
 		    bytes, direction, s, bs / 1024.0);
praszyk 08c5489
 	}
praszyk 08c5489
 }