On Mon, Mar 27, 2006 at 07:30:07PM -0500, Adam Ringel wrote:
> 19561: read(7, 0x002840D5, 48) = 48
> 19561: B7 ?BC85DA04 V k v\n11 p * ! y83 rC2E5A4 "C1F5948DFE0EF7 k ,87 j
> 19561: E9AC98D0F }83 = 007\t9DDFF4DB10
> 19561: write(7, 0x00292200, 59) = 59
> 19561: 140301\00101160301\0 08816 ,8A qF518AFA5 I uB99EFA j 7F596 ?87A1
> 19561: | D > o "869ECF ? p9683B3D7 nE680 71C18ECD7 a O8FEB l
> 19561: read(4, 0x00251F30, 5) Err#11 EAGAIN
> 19561: poll(0x00245820, 1, 300000) (sleeping...)
Please test attached patch. I'm not sure yet what causes the hang, but this
can be a reason.
--
Alexander.
Index: ftpclass.cc
===================================================================
RCS file: /home/lav/cvsroot/lftp/src/ftpclass.cc,v
retrieving revision 1.378
diff -u -p -r1.378 ftpclass.cc
--- ftpclass.cc 16 Feb 2006 08:03:32 -0000 1.378
+++ ftpclass.cc 28 Mar 2006 09:51:32 -0000
@@ -3118,7 +3118,10 @@ int Ftp::SendEOT()
return(DO_AGAIN);
if(!conn->data_iobuf->Eof())
+ {
conn->data_iobuf->PutEOF();
+ conn->data_iobuf->Timeout(0);
+ }
if(!conn->data_iobuf->Done())
return(DO_AGAIN);