From jshue@www2.symmetron.com  Tue Jan 12 16:10:22 1999
Received: from www2.symmetron.com (www2.symmetron.com [206.239.186.3])
          by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id QAA11125
          for <FreeBSD-gnats-submit@freebsd.org>; Tue, 12 Jan 1999 16:10:19 -0800 (PST)
          (envelope-from jshue@www2.symmetron.com)
Received: (from root@localhost)
	by www2.symmetron.com (8.8.8/8.8.8) id TAA02806;
	Tue, 12 Jan 1999 19:09:42 -0500 (EST)
	(envelope-from jshue)
Message-Id: <199901130009.TAA02806@www2.symmetron.com>
Date: Tue, 12 Jan 1999 19:09:42 -0500 (EST)
From: John.Shue@symmetron.com
Reply-To: John.Shue@symmetron.com
To: FreeBSD-gnats-submit@freebsd.org
Subject: Fix for fetch ignoring FTP_PASSIVE_MODE environment variable
X-Send-Pr-Version: 3.2

>Number:         9464
>Category:       bin
>Synopsis:       Fix for fetch ignoring FTP_PASSIVE_MODE environment variable
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    fenner
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jan 12 16:20:01 PST 1999
>Closed-Date:    Sun Jan 30 10:31:03 PST 2000
>Last-Modified:  Sun Jan 30 10:32:17 PST 2000
>Originator:     John A. Shue
>Release:        FreeBSD 2.2.8-STABLE i386
>Organization:
Symmetron, Inc.
>Environment:

	FTP_PASSIVE_MODE=YES

>Description:

	fetch man page states that the environment variable FTP_PASSIVE_MODE
	is used to "force the use of passive mode FTP".  This feature is not
	working as advertised.  I know that a quick fix is to just use the
	-p command-line option (which does work), but fetch should be fixed

>How-To-Repeat:

	(shell: csh and current machine behind strict firewall)
	% setenv FTP_PASSIVE_MODE
	% fetch "ftp://ftp.freebsd.org/pub/FreeBSD/README"
	(after time-out period)
	error: fetch: Can't open data connection
	% setenv FTP_PASSIVE_MODE YES
	% fetch "ftp://ftp.freebsd.org/pub/FreeBSD/README"
	(after time-out period)
	error: fetch: Can't open data connection

>Fix:
	
	The following context patch fixes the FTP_PASSIVE_MODE bug and
	works on $Id: ftp.c,v 1.3.2.6 1998/09/23 12:23:29 jkh Exp $ from
	my 2.2.8-stable and
	$Id: ftp.c,v 1.11 1998/12/08 13:00:49 cracauer Exp $ from
	3.0-current.

*** ftp.c.orig	Tue Jan 12 17:50:41 1999
--- ftp.c	Tue Jan 12 17:52:36 1999
***************
*** 366,371 ****
--- 366,373 ----
  		}
  	} else
  		ftpBinary(ftp);
+ 	if(getenv("FTP_PASSIVE_MODE"))
+ 	  fs->fs_passive_mode=1;
  	ftpPassive(ftp, fs->fs_passive_mode);
  	for (i = 0, dp = ftps->ftp_remote_dirs; i < ftps->ftp_remote_ndirs; i++, dp++) {
  		if ((status = ftpChdir(ftp, *dp)) != 0) {

>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: fenner 
State-Changed-When: Wed Feb 3 12:45:01 PST 1999 
State-Changed-Why:  
Committed, thanks! 
State-Changed-From-To: closed->open 
State-Changed-By: fenner 
State-Changed-When: Wed Feb 3 15:51:41 PST 1999 
State-Changed-Why:  
I didn't investigate fully before closing the PR.  The FTP_PASSIVE_MODE 
environment variable is checked by libftpio, and in all of my attempts 
I have been unable to get a pre-patch fetch to fail to use passive mode 
with FTP_PASSIVE_MODE set...... 

Could you re-do your tests, using "fetch -v" to see exactly what's going 
on? 

Thanks, 
Bill 
Responsible-Changed-From-To: freebsd-bugs->fenner 
Responsible-Changed-By: ru 
Responsible-Changed-When: Fri Jun 25 06:09:11 PDT 1999 
Responsible-Changed-Why:  
Bill may wish to close this PR. 
State-Changed-From-To: open->closed 
State-Changed-By: fenner 
State-Changed-When: Sun Jan 30 10:31:03 PST 2000 
State-Changed-Why:  
libftpio checks the FTP_PASSIVE_MODE variable, so there's no need to 
have fetch check it. 
>Unformatted:
