Date: Fri, 18 Aug 2000 05:51:33 +0900 (JST) From: Hajimu UMEMOTO <ume@mahoroba.org> To: archie@whistle.com Cc: freebsd-current@freebsd.org Subject: Re: 5.0 snapshot install problem Message-ID: <20000818.055133.48522708.ume@mahoroba.org> In-Reply-To: <200008172029.NAA96024@bubba.whistle.com> References: <20000818.023721.115915969.ume@mahoroba.org> <200008172029.NAA96024@bubba.whistle.com>
next in thread | previous in thread | raw e-mail | index | archive | help
>>>>> On Thu, 17 Aug 2000 13:29:27 -0700 (PDT) >>>>> Archie Cobbs <archie@whistle.com> said: archie> Hajimu UMEMOTO writes: > > It seems -CURRENT's libftpio.c always set passive flag according to > > environment variable FTP_PASSIVE_MODE. Then, PASV/PORT selection > > obeys only FTP_PASSIVE_MODE and direction of sysinstall is ignored. > > Does this patch fix your problem? > > archie> Don't know, because I'd have to create new install floppies first.. > > archie> But I don't think this patch would fix things.. I don't see any > archie> logical flaw there. ftpPassive() just checks that the toggle is > archie> set to the right value -- it doesn't necessarily do anything. > > After checking, FTP_PASSIVE_MODE is tested by check_passive() every > fetGET() call. check_passive() calls ftpPassive(). So, > ftp->is_passive is resetted. archie> OK, now I think I see part of the problem.. check out ftpPassive(): ...snip... archie> This is completely wrong. The comment "passive mode is a toggle" archie> is incorrect. It's correct when you're talking about ftp(1)'s archie> "pass" command, but NOT true in the FTP protocol. Therefore archie> ftpPassive() should not be issuing any PASV command at all; the archie> sending of the PASV or PORT command (which applies per-transfer) archie> is handled by ftp_file_op() anyway (so the one sent by ftpPassive() archie> ends up having no effect anyway). archie> What must be happening is that sysinstall is actually setting archie> up an active mode connection, and the PASV is simply the extraneous archie> one emitted by ftpPassive(). Yes, I agree with it. However, it doesn't solve your problem. archie> But why is sysinstall going to active mode? I *know* FTP passive archie> was selected.. This is just because ftpPassive() is called from ftpGet(). ftpGet() check_passive() ftpPassive() Further more, if FTP_PASSIVE_MODE is not set, check_passive() calls ftpPassive(fp, 0). First, sysinstall calls ftpPassive() to intend to use PASV. Then, ftp->is_passive is reset to 1. Next, ftpGet() calls ftpPassive() according to the setting of FTP_PASSIVE_MODE. In installer, FTP_PASSIVE_MODE is not set. Then, ftp->is_passive is reset to 0 by ftpPassive() toggle. So, ftp_file_op() issues PORT. -- Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan ume@mahoroba.org ume@bisd.hitachi.co.jp ume@FreeBSD.org http://www.imasy.org/~ume/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000818.055133.48522708.ume>