The server can't be sure the file has been sent properly before the connection is properly closed. So it can't send the 226 answer before the connection close is complete.
-- [EMAIL PROTECTED] The author for the freeware multi-tier middleware MidWare The author of the freeware Internet Component Suite (ICS) http://www.overbyte.be ----- Original Message ----- From: "Arno Garrels" <[EMAIL PROTECTED]> To: "ICS support mailing" <twsocket@elists.org> Sent: Friday, April 20, 2007 6:05 PM Subject: Re: [twsocket] 501 Cannot RETR.Error-SocketwithicsFtpServ(V6forDelphi7) > Patrick Schmidt - STEP Software GmbH wrote: >>> Possibly G6 works around that, have you tried Serv-U as well as >>> FileZilla server? If they all handle your client correctly we have to >>> find a workaround. >> I tried Filezilla Server and Serv-U. Both worked, see log. > > Ohh, that's very interesting! > > I logged two sequences with Ethereal, both Ftptst demo, > one against FtpSrv demo another against Serv-U. > (Only 1 byte was transfered, so each file has only 15 lines) > http://www.duodata.de/misc/ICSFtpSrv-DataClose1.pcap > http://www.duodata.de/misc/Serv-U-DataClose1.pcap > >>From these logs it seems that Serv-U doesn't wait for the > client until it closes the connection but sends "226 File sent ok" > at once. > This might be the reason why your client fails with the ICS > server, though I guess that your client is not RFC conform. > > Francois and all what do you think, should we tweak the TFtpSrv > to send the response earlier? > >> May i send you my captured .pcap - file (148 KB) ? > > Yes, please send it. > > -- > Arno Garrels [TeamICS] > http://www.overbyte.be/eng/overbyte/teamics.html > >> >> best regards >> Patrick Schmidt >> >> ----- Original Message ----- >> From: "Arno Garrels" <[EMAIL PROTECTED]> >> To: "ICS support mailing" <twsocket@elists.org> >> Sent: Friday, April 20, 2007 1:56 PM >> Subject: Re: [twsocket] 501 Cannot RETR. >> Error -SocketwithicsFtpServ(V6forDelphi7) >> >> >>> Patrick Schmidt - STEP Software GmbH wrote: >>>>> I bet the delay starts after the server called Data.ShutDown(1) >>>>> in FtpSrv.pas, TFtpServer.WMFtpSrvCloseData, can you please >>>>> set a breakpoint there and check whether that this is true? >>>> I'm not shure, I set a breakpoint to this row: " >>>> Data.ShutDown(1); { Wilfried 24/02/04 } " >>>> but debugging goes on (leaves the procedure) >>> >>> Can you confirm that the delay happens somewhere after >>> Data.ShutDown(1)? This meant that the FTP client doesn't handle the >>> shutdown sequence correctly but expects that the server will close >>> the data connection. Since that never happens the client application >>> drops the connection after its own timeout has expired. >>> >>> A network sniffer like Ethereal (now WireShark) could prove that. >>> >>> At the bottom of the page below you'll find a nice table that >>> explains the bidirectional socket shutdown sequence step by step: >>> http://msdn2.microsoft.com/en-us/library/ms738547.aspx >>> >>> Note that in non-passive mode the server represents the client side! >>> >>>> If I try other client (eg Filezilla) it >>>> works and if i try other >>>> server (G6 FTP Server) with the console it works, too! :-( >>> >>> Possibly G6 works around that, have you tried Serv-U as well as >>> FileZilla server? If they all handle your client correctly we have to >>> find a workaround. >>> >>> -- >>> Arno Garrels [TeamICS] >>> http://www.overbyte.be/eng/overbyte/teamics.html >>> >>>> >>>> >>>> I also tried your Sample-Application (OverbyteIcsFtpSrv.dpr), it >>>> behaves the same way. >>>> <snip> >>>> < 192.168.200.179 LIST >>>>> 192.168.200.179 150 Opening data connection for directory list. >>>>> Here occurs the delay 192.168.200.179 501 Cannot RETR. Error - >>>>> Connection aborted (#10053) >>>> ! 192.168.200.179 Data session closed. Error #10053 >>>> < 192.168.200.179 PORT 192,168,200,179,4,128 >>>>> 192.168.200.179 200 Port command successful. >>>> <snip> >>>> >>>> If i use another FTP-Server the log looks like this: >>>> <snip> >>>>> LIST >>>>> 150 Opening data connection for directory list. >>>>> 226 File sent ok. >>>>> PORT 192,168,200,179,4,145 >>>>> 200 Port command successful. >>>> >>>> <snip> >>>> >>>> Patrick Schmidt >>>> >>>> ----- Original Message ----- >>>> From: "Arno Garrels" <[EMAIL PROTECTED]> >>>> To: "ICS support mailing" <twsocket@elists.org> >>>> Sent: Wednesday, April 18, 2007 7:17 PM >>>> Subject: Re: [twsocket] 501 Cannot RETR. Error - Socket >>>> withicsFtpServ(V6forDelphi7) >>>> >>>> >>>>> Patrick Schmidt - STEP Software GmbH wrote: >>>>>>> Later you change to that directory and request a dir list. The >>>>>>> server somewhat hang creating the directory list. After 2 minutes >>>>>>> the connection is >>>>>>> closed (probably an inactivity timeout at server side). >>>>>> After this time (and error-message) the client gets the list and >>>>>> loads every file in the list! >>>>>> That's strange... >>>>> >>>>> I bet the delay starts after the server called Data.ShutDown(1) >>>>> in FtpSrv.pas, TFtpServer.WMFtpSrvCloseData, can you please >>>>> set a breakpoint there and check whether that this is true? >>>>> >>>>> -- >>>>> Arno Garrels [TeamICS] >>>>> http://www.overbyte.be/eng/overbyte/teamics.html >>>>> >>>>>> >>>>>>> Try with passive mode. >>>>>> Passive mode is not possible, my client is a (Hardware-)Lighting- >>>>>> console. The only options to configure in console are: IP, user, >>>>>> pw and a directory >>>>>> >>>>>>> Can you reproduce this behaviour using another FTP client >>>>>>> software using the >>>>>>> same conditions ? >>>>>> No, only this combination. If I try other client (eg Filezilla) >>>>>> it works and if i try other >>>>>> server (G6 FTP Server) with the console it works, too! :-( >>>>>> >>>>>> best regards >>>>>> Patrick Schmidt >>>>>> >>>>>> ----- Original Message ----- >>>>>> From: "Francois PIETTE" <[EMAIL PROTECTED]> >>>>>> To: "ICS support mailing" <twsocket@elists.org> >>>>>> Sent: Wednesday, April 18, 2007 4:20 PM >>>>>> Subject: Re: [twsocket] 501 Cannot RETR. Error - Socket with >>>>>> icsFtpServ (V6forDelphi7) >>>>>> >>>>>> >>>>>>>> My FTP-Client send a "LIST" which is not handled correctly. >>>>>>>> After the "LIST" >>>>>>>> it takes about 2 minutes until the error is displayed and after >>>>>>>> that the client >>>>>>>> gets the direcory listing. >>>>>>>> Answer to client: 550 'F:\PROJ\grandMA ftp\slp': can't create >>>>>>>> directory. >>>>>>> >>>>>>> You are creating a directory and you don't have permission. Maybe >>>>>>> already exists. Should not be the problem. >>>>>>> >>>>>>>> ! Answer to client: 150 Opening data connection for directory >>>>>>>> list. !!! Here the communication hang for nearly 2 minutes !!! >>>>>>>> ! Answer to client: 501 Cannot RETR. Error - Socket is not >>>>>>>> connected >>>>>>> >>>>>>> Later you change to that directory and request a dir list. The >>>>>>> server somewhat hang creating the directory list. After 2 minutes >>>>>>> the connection is >>>>>>> closed (probably an inactivity timeout at server side). >>>>>>> >>>>>>> Try with passive mode. >>>>>>> >>>>>>> Can you reproduce this behaviour using another FTP client >>>>>>> software using the >>>>>>> same conditions ? >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Contribute to the SSL Effort. Visit >>>>>>> http://www.overbyte.be/eng/ssl.html -- >>>>>>> [EMAIL PROTECTED] >>>>>>> http://www.overbyte.be >>>>>>> >>>>>>> >>>>>>> >>>>>>> ----- Original Message ----- >>>>>>> From: "Patrick Schmidt - STEP Software GmbH" <[EMAIL PROTECTED]> >>>>>>> To: <twsocket@elists.org> >>>>>>> Sent: Wednesday, April 18, 2007 4:08 PM >>>>>>> Subject: [twsocket] 501 Cannot RETR. Error - Socket with >>>>>>> icsFtpServ (V6 forDelphi7) >>>>>>> >>>>>>> >>>>>>>> STEP >>>>>>>> My FTP-Client send a "LIST" which is not handled correctly. >>>>>>>> After the "LIST" >>>>>>>> it >>>>>>>> takes about 2 minutes until the error is displayed and after >>>>>>>> that the client >>>>>>>> gets >>>>>>>> the direcory listing. >>>>>>>> >>>>>>>> See log-file: >>>>>>>> 192.168.200.167 connected >>>>>>>> Client-Command: USER MA >>>>>>>> Answer to client: 331 Password required for MA. >>>>>>>> Client-Command: PASS ma >>>>>>>> Login Username:MA Password:ma >>>>>>>> Answer to client: 230 User MA logged in. >>>>>>>> Client-Command: TYPE I >>>>>>>> Answer to client: 200 Type set to I. >>>>>>>> Client-Command: MKD slp >>>>>>>> Make Directory: F:\PROJ\grandMA ftp\slp >>>>>>>> Answer to client: 550 'F:\PROJ\grandMA ftp\slp': can't create >>>>>>>> directory. Client-Command: CWD slp >>>>>>>> Change Directory: F:\PROJ\grandMA ftp\slp\ >>>>>>>> Answer to client: 250 CWD command successful. "F:/PROJ/grandMA >>>>>>>> ftp/slp/" is >>>>>>>> current directory. >>>>>>>> Client-Command: PORT 192,168,200,167,4,205 >>>>>>>> Answer to client: 200 Port command successful. >>>>>>>> Client-Command: LIST >>>>>>>> ! Answer to client: 150 Opening data connection for directory >>>>>>>> list. !!! Here the communication hang for nearly 2 minutes !!! >>>>>>>> ! Answer to client: 501 Cannot RETR. Error - Socket is not >>>>>>>> connected (#10057) >>>>>>>> >>>>>>>> best regards >>>>>>>> Patrick Schmidt >>>>>>>> >>>>>>>> -- >>>>>>>> To unsubscribe or change your settings for TWSocket mailing list >>>>>>>> please goto http://www.elists.org/mailman/listinfo/twsocket >>>>>>>> Visit our website at http://www.overbyte.be >>>>>>> >>>>>>> -- >>>>>>> To unsubscribe or change your settings for TWSocket mailing list >>>>>>> please goto http://www.elists.org/mailman/listinfo/twsocket >>>>>>> Visit our website at http://www.overbyte.be >>>>> -- >>>>> To unsubscribe or change your settings for TWSocket mailing list >>>>> please goto http://www.elists.org/mailman/listinfo/twsocket >>>>> Visit our website at http://www.overbyte.be >>> -- >>> To unsubscribe or change your settings for TWSocket mailing list >>> please goto http://www.elists.org/mailman/listinfo/twsocket >>> Visit our website at http://www.overbyte.be > -- > To unsubscribe or change your settings for TWSocket mailing list > please goto http://www.elists.org/mailman/listinfo/twsocket > Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be