mods. to Utexas ftp

Satz at sri-tsc Satz at sri-tsc
Wed Sep 7 15:41:00 AEST 1983


From:  Greg Satz <Satz at sri-tsc>


I needed to use the Utexas ftp program from a pipe. I had to
make the following modifications so it would work:

**** /a/sys/arpanet/ftp.utexas/cmds.c	Thu Mar 31 18:12:53 1983
--- cmds.c	Fri Aug 26 00:15:26 1983
***************
*** 69,75
  	if (host) {
  		connected = 1;
  		if (autologin)
! 			login(host);
  	}
  }
  

--- 69,76 -----
  	if (host) {
  		connected = 1;
  		if (autologin)
! 			if (!login(host) && !fromatty)
! 				exit(1);
  	}
  	else if (!fromatty)
  		exit(1);
***************
*** 71,76
  		if (autologin)
  			login(host);
  	}
  }
  
  struct	types {

--- 72,79 -----
  			if (!login(host) && !fromatty)
  				exit(1);
  	}
+ 	else if (!fromatty)
+ 		exit(1);
  }
  
  struct	types {
***************
*** 560,566
  		return;
  	if (chdir(argv[1]) < 0) {
  		perror(argv[1]);
! 		return;
  	}
  #if !pdp11
  	printf("Local directory now %s\n", getwd(buf));

--- 563,572 -----
  		return;
  	if (chdir(argv[1]) < 0) {
  		perror(argv[1]);
! 		if (fromatty)
! 			return;
! 		else
! 			exit(1);
  	}
  #if !pdp11
  	printf("Local directory now %s\n", getwd(buf));

*** /a/sys/arpanet/ftp.utexas/ftp.c	Thu Mar 31 18:27:44 1983
--- ftp.c	Fri Aug 26 16:31:01 1983
***************
*** 279,286
  	case TYPE_I:
  	case TYPE_L:
  		errno = d = 0;
! 		while ((c = read(fileno (fin), buf, sizeof (buf))) > 0) {
! 			if ((d = write(fileno (dout), buf, c)) < 0)
  				break;
  			bytes += c;
  			if (hash) {

--- 279,286 -----
  	case TYPE_I:
  	case TYPE_L:
  		errno = d = 0;
! 		while ((c = fread(buf, sizeof (*buf), sizeof buf, fin)) > 0) {
! 			if ((d = fwrite(buf,sizeof (*buf), c, dout)) < 0)
  				break;
  			bytes += c;
  			if (hash) {
***************
*** 343,348
  		(void) close(data), data = -1;
  	if (closefunc != NULL && fin != NULL)
  		(*closefunc)(fin);
  	goto done;
  }
  

--- 343,350 -----
  		(void) close(data), data = -1;
  	if (closefunc != NULL && fin != NULL)
  		(*closefunc)(fin);
+ 	if (!fromatty)
+ 		exit(1);
  	goto done;
  }
  
***************
*** 411,418
  	case TYPE_I:
  	case TYPE_L:
  		errno = d = 0;
! 		while ((c = read(fileno(din), buf, sizeof (buf))) > 0) {
! 			if ((d = write(fileno(fout), buf, c)) < 0)
  				break;
  			bytes += c;
  			if (hash) {

--- 413,420 -----
  	case TYPE_I:
  	case TYPE_L:
  		errno = d = 0;
! 		while ((c = fread(buf, sizeof (*buf), sizeof buf, din)) > 0) {
! 			if ((d = fwrite(buf, sizeof (*buf), c, fout)) < 0)
  				break;
  			bytes += c;
  			if (hash) {
***************
*** 477,482
  		(void) close(data), data = -1;
  	if (closefunc != NULL && fout != NULL)
  		(*closefunc)(fout);
  	goto done;
  }
  

--- 479,486 -----
  		(void) close(data), data = -1;
  	if (closefunc != NULL && fout != NULL)
  		(*closefunc)(fout);
+ 	if (!fromatty)
+ 		exit(1);
  	goto done;
  }
  
*** /a/sys/arpanet/ftp.utexas/main.c	Thu Mar 24 18:19:50 1983
--- main.c	Thu Aug 25 23:54:50 1983
***************
*** 181,187
  			fflush(stdout);
  		}
  		if (gets(line) == 0)
! 			break;
  		if (line[0] == 0)
  			break;
  		makeargv();

--- 181,190 -----
  			fflush(stdout);
  		}
  		if (gets(line) == 0)
! 			if (fromatty)
! 				break;
! 			else
! 				quit();
  		if (line[0] == 0)
  			break;
  		makeargv();



More information about the Comp.unix.wizards mailing list