[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: lynx-dev RFC959 non-compliance in Lynx hangs the client
From: |
Gregory A Lundberg |
Subject: |
Re: lynx-dev RFC959 non-compliance in Lynx hangs the client |
Date: |
Tue, 7 Sep 1999 10:31:27 -0400 |
On Tue, Sep 07, 1999 at 04:50:21AM -0400, Philip Webb wrote:
> 990907 Gregory Lundberg wrote:
> > The WU-FTPD Development Group is in beta test for version 2.6.0 of the
> > WU-FTPD daemon. we're enforcing a clean shutdown of the data
> > connection prior to sending the 2xx Transfer Complete message on the
> > FTP control channel. When a Lynx user attempts to connect to a version
> > 2.6.0 WU-FTPD server, the client hangs obtaining the initial directory
> > listing. This may be observed on our primary distribution site,
> > ftp.wu-ftpd.org
>
> yes, this happens with 2-8-2dev.19 on IRIX 5.3 , but z terminates the
> hang & displays the following screen:
> > At this point, I have not debugged a Lynx FTP session. If you would
> > like my analysis of where Lynx is failing, please let me know.
>
> i'm sure you'll get a reply from a more technically knowledgeable
> volunteer, but please do let us have any further results you obtain, incl
> the version of Lynx you are using & what system you're using it on. the
> latest Lynx is 2-8-2 from www.slcc.edu/lynx/release/ ; the latest
> development version is at sol.slcc.edu/lynx/current/ .
Some old Lynx from a Redhat CD. Since you're stating is happens with a
recent development version, I don't see a reason to attempt an upgrade.
Here's my analysis:
tcpdump: listening on lo
08:58:26.330766 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: S
08:58:26.330766 ftp.wu-ftpd.org.ftp > ftp.wu-ftpd.org.14446: S
08:58:26.330766 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: . ack 1
[ Control connection established. ]
08:58:26.340766 ftp.wu-ftpd.org.ftp > ftp.wu-ftpd.org.14446: P 1:40(39) ack 1
[ S->C ] 220 ftp.wu-ftpd.org FTP server ready.
08:58:26.340766 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: P 1:17(16) ack 40
[ C->S ] USER anonymous
08:58:26.350766 ftp.wu-ftpd.org.ftp > ftp.wu-ftpd.org.14446: P 40:108(68) ack 17
[ S->C ] 331 Guest login ok, send your complete e-mail address as password.
08:58:26.350766 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: P 17:45(28) ack 108
[ C->S ] PASS address@hidden
08:58:26.350766 ftp.wu-ftpd.org.ftp > ftp.wu-ftpd.org.14446: P 108:173(65) ack
45
[ S->C ] 230-Welcome to the FTP server for the WU-FTPD Development Group
08:58:26.370766 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: . ack 173
[ C->S Naggle ]
08:58:26.370766 ftp.wu-ftpd.org.ftp > ftp.wu-ftpd.org.14446: P 173:541(368) ack
45
[ S->C ] 230-
[ S->C ] 230-This server is the primary distribution site for the WU-FTPD
daemon.
[ S->C ] 230-
[ S->C ] 230-The pub directory contains the distribution and supporting files.
[ S->C ] 230-
[ S->C ] 230-If you are uploading contributions, please place them in the
incoming
[ S->C ] 230-directory and email address@hidden announcing your upload.
[ S->C ] 230-
[ S->C ] 230 Guest login ok, access restrictions apply.
08:58:26.370766 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: P 45:51(6) ack 541
[ C->S ] SYST
08:58:26.370766 ftp.wu-ftpd.org.ftp > ftp.wu-ftpd.org.14446: P 541:560(19) ack
51
[ S->C ] 215 UNIX Type: L8
08:58:26.370766 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: P 51:78(27) ack 560
[ C->S ] PORT 205,133,13,68,56,111
08:58:26.370766 ftp.wu-ftpd.org.ftp > ftp.wu-ftpd.org.14446: P 560:590(30) ack
78
[ S->C ] 200 PORT command successful.
[ Note to WU-FTPD Development Group: As I've noted before, we should be
establishing the data connection at this point. ]
08:58:26.370766 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: P 78:86(8) ack 590
[ C->S ] RETR /
[ Note to Lynx developers: Be glad we're not yet up to snuff on RFC compliance
at this point in the conversation. You have issued a RETR. That command,
failed or not, means the server should close the data connection. As a PORT
mode connection, a compliant server would re-open the same source/destination
pair should you issue another RETR, which you're about to do. This will
probably fail since the client end will be refusing that pair for a while
longer yet. If you're used a PASV mode connection, the server would still
have closed it at this point, and fallen back to the default, PORT mode ..
lacking a port number for the client end, the server would refuse all
subsequent data transfer requests until another PASV, or a PORT command, is
received. ]
08:58:26.370766 ftp.wu-ftpd.org.ftp > ftp.wu-ftpd.org.14446: P 590:616(26) ack
86
[ S->C ] 550 /: not a plain file.
08:58:26.370766 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: P 86:93(7) ack 616
[ C->S ] CWD /
08:58:26.370766 ftp.wu-ftpd.org.ftp > ftp.wu-ftpd.org.14446: P 616:645(29) ack
93
[ S->C ] 250 CWD command successful.
08:58:26.370766 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: P 93:99(6) ack 645
[ Note to Lynx developers: At this point, you should issue another PORT
command, or a PASV command. The last one should have been flushed by the
daemon due to your erroroneous RETR command. A compliant server will not
have a data connection established at this point, and would not have the
information necessary to establish one. Except, a strictly compliant server
would re-attempt the old port pair from the previous PORT command, and get a
failure at this point since the client will refuse that pair. ]
[ C->S ] LIST
08:58:26.370766 ftp.wu-ftpd.org.ftp > ftp.wu-ftpd.org.14446: P 645:708(63) ack
99
[ S->C ] 150 Opening ASCII mode data connection for directory listing.
08:58:26.390766 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: . ack 708
[ C->S Naggle ]
08:58:26.370766 ftp.wu-ftpd.org.ftp-data > ftp.wu-ftpd.org.14447: S
08:58:26.370766 ftp.wu-ftpd.org.14447 > ftp.wu-ftpd.org.ftp-data: S
08:58:26.370766 ftp.wu-ftpd.org.ftp-data > ftp.wu-ftpd.org.14447: . ack 1
[ Data connection established. ]
08:58:26.370766 ftp.wu-ftpd.org.ftp-data > ftp.wu-ftpd.org.14447: P 1:380(379)
ack 1
[ S->C ] total 16
[ S->C ] d--x--x--x 2 root root 1024 Jul 19 12:19 bin
[ S->C ] d--x--x--x 2 root root 1024 Jan 12 1999 dev
[ S->C ] d--x--x--x 2 root root 1024 May 25 1999 etc
[ S->C ] drwxrwx-wx 2 root wuftpd 1024 Sep 3 22:10 incoming
[ S->C ] drwxrwx--x 4 root wuftpd 2048 Aug 26 16:50 private
[ S->C ] drwxrwxr-x 6 root wuftpd 2048 Jul 9 07:43 pub
08:58:26.370766 ftp.wu-ftpd.org.14447 > ftp.wu-ftpd.org.ftp-data: . ack 381
[ C->S Naggle ]
08:58:26.370766 ftp.wu-ftpd.org.ftp-data > ftp.wu-ftpd.org.14447: F 380:380(0)
ack 1
[ FTP server is waiting for Lynx to close down the socket. ]
[ Time passes ]
[ User presses 'z' ]
08:58:30.230882 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: F 99:99(0) ack 708
08:58:30.230882 ftp.wu-ftpd.org.ftp > ftp.wu-ftpd.org.14446: . ack 100
[ Lynx closes the control connection, thereby leaving the FTP protocol behind
and forging into the realm of non-compliance. Well, at least it's what the
user told Lynx to do. ]
[ Note to WU-FTPD Development Group: The daemon should detect this protocol
failure, close down and terminate normally. We should probably log something
about a lame client to help admins figure out why it's not working for this
user. ]
[ Notice the daemon said, "Yes, I see you're closed, but I have more to say." ]
08:58:30.230882 ftp.wu-ftpd.org.14447 > ftp.wu-ftpd.org.ftp-data: F 1:1(0) ack
381
08:58:30.230882 ftp.wu-ftpd.org.ftp-data > ftp.wu-ftpd.org.14447: . ack 2
[ Lynx finally closes the data connection. This is what the server has been
awaiting. Lynx, of course, does not know that. It thinks it's resetting
things due to a user request. ]
[ Note to WU-FTPD Development Group: If this occurred in another state, the
daemon should detect the protocol failure, log a message, and terminate the
data session. At this point, since the daemon is the sender, it is our job
to close the connection. This early close indicates a lame client. We
should detect and handle the case. ]
08:58:30.230882 ftp.wu-ftpd.org.ftp > ftp.wu-ftpd.org.14446: P 708:732(24) ack
100
[ S->C ] 226 Transfer complete.
08:58:30.230882 ftp.wu-ftpd.org.14446 > ftp.wu-ftpd.org.ftp: R
[ Lynx, having already closed down its end of the control connection, has no
choice but to reset the connection. The server now errors and terminates. ]
80 packets received by filter
0 packets dropped by kernel
--
Gregory A Lundberg WU-FTPD Development Group
1441 Elmdale Drive address@hidden
Kettering, OH 45409-1615 USA 1-800-809-2195
pgpPFb5NgRVIg.pgp
Description: PGP signature
- lynx-dev RFC959 non-compliance in Lynx hangs the client, Gregory A Lundberg, 1999/09/07
- Re: lynx-dev RFC959 non-compliance in Lynx hangs the client, Philip Webb, 1999/09/07
- Re: lynx-dev RFC959 non-compliance in Lynx hangs the client,
Gregory A Lundberg <=
- Re: lynx-dev RFC959 non-compliance in Lynx hangs the client, Klaus Weide, 1999/09/07
- Re: lynx-dev RFC959 non-compliance in Lynx hangs the client, Gregory A Lundberg, 1999/09/09
- Re: lynx-dev RFC959 non-compliance in Lynx hangs the client, Klaus Weide, 1999/09/10
- Re: lynx-dev RFC959 non-compliance in Lynx hangs the client, Gregory A Lundberg, 1999/09/11
- Re: lynx-dev RFC959 non-compliance in Lynx hangs the client, Klaus Weide, 1999/09/11
- Re: lynx-dev RFC959 non-compliance in Lynx hangs the client, David Woolley, 1999/09/09
- Re: lynx-dev RFC959 non-compliance in Lynx hangs the client, David Woolley, 1999/09/09
- Re: lynx-dev RFC959 non-compliance in Lynx hangs the client, Gregory A Lundberg, 1999/09/09
- Re: lynx-dev RFC959 non-compliance in Lynx hangs the client, Klaus Weide, 1999/09/10
- Re: lynx-dev RFC959 non-compliance in Lynx hangs the client, Gregory A Lundberg, 1999/09/10