lynx-dev
[Top][All Lists]
Advanced

[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

Attachment: pgpPFb5NgRVIg.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]