#25239 [Opn->Ver]: FTP functions won't retrieve more than ~8k from Serv-U FTP server
| From: | pollita@php.net | Date: | Mon, 25 Aug 2003 21:06:09 +0000 |
| Subject: | #25239 [Opn->Ver]: FTP functions won't retrieve more than ~8k from Serv-U FTP server | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-46595@lists.php.net to get a copy of this message | ||
ID: 25239
Updated by: pollita@php.net
Reported By: mhumphrey at designvision dot com
-Status: Open
+Status: Verified
Bug Type: FTP related
Operating System: Win32
PHP Version: 4.3.2
New Comment:
@php.net mail isn't working right at the moment, but I've found an
anonymous ftp server running Serv-U and verified it from linux, however
it does indeed appear to be limited only to Serv-U servers (other
daemons interact fine).
Previous Comments:
------------------------------------------------------------------------
[2003-08-25 15:55:08] mhumphrey at designvision dot com
#1) ftp_connect(), ftp_login(), ftp_get() worked as expected...file was
full 22 k. Seems to only be the functions that read into a string or
the ob. So that's good to know for coding a workaround.
#2) I'm the (35 year old) script kiddie who installed Serv-U on two
seperate "unprotected" Win2k systems (well, i'm only a SK when i'm
using PHP, the rest of the time i'm a C++adult ;) You can download a
free 30 day trial of Serv-U at
http://www.serv-u.com/customer/record.asp?prod=su
I'll also give you
an account on the Serv-U at our office that you may test with, i'll
send that login info by email. Thanks for the quick reply!
------------------------------------------------------------------------
[2003-08-25 15:37:27] pollita@php.net
#1) Could you try the same transfer using the ftp extension? (i.e.:
ftp_connect(), ftp_login(), etc...)
#2) Is there a public Serv-U FTP server available to test against which
you can point me towards? (The only ones I've ever come across were
installed by script kiddies on unprotected windows boxes -- Not that
I'm blaming the software mind you)
------------------------------------------------------------------------
[2003-08-25 13:44:07] mhumphrey at designvision dot com
Description:
------------
FTP functions won't retrieve more than ~8k from Serv-U FTP server ver
4.1 ( www.rhinosoft.com ). Anything over that gets truncated and a QUIT
appears in the server log in mid-transfer.
I'm using PHP 4.3.2 on Win32 with Apache 2.0.46
I don't know if this is PHP or Serv-U that's off spec here...all i know
is they don't seem to like each other.
Reproduce code:
---------------
Just use any FTP function and try to pull a >8k text file down from a
Serv-U server. Seems to effect every FTP capable function i've tried:
fread(), readfile(), file_get_contents(), etc...
Expected result:
----------------
A string of the same size as the file on the FTP server.
Actual result:
--------------
Your returned data will be truncated at around the 8k point.
Here's what Serv-U's log has to say, notice the QUIT that seems to come
up in mid-transfer, possibly a clue?:
[2] Mon 25Aug03 13:31:01 - (000012) RETR /entertainment.xml
[3] Mon 25Aug03 13:31:01 - (000012) Sending file
c:\apache2\htdocs\momo\entertainment.xml
[7] Mon 25Aug03 13:31:01 - Sock ID=32 accept(504,0x010F9F74,0x010F9F9C)
--> 464 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32
ioctlsocket(464,FIONBIO,0x010F9F88) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32
WSAAsyncSelect(464,65580,1024,FD_READ FD_WRITE FD_CLOSE) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=31
WSAAsyncSelect(504,65580,0,<<NONE>>) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=31
setsockopt(504,SOL_SOCKET,SO_LINGER,0x010F9F30,4) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=31 shutdown(504,0) --> -1
(WSAENOTCONN)
[7] Mon 25Aug03 13:31:01 - Sock ID=31 shutdown(504,1) --> -1
(WSAENOTCONN)
[7] Mon 25Aug03 13:31:01 - Sock ID=31 closesocket(504) --> 0 (OK)
[6] Mon 25Aug03 13:31:01 - (000012) 150 Opening BINARY mode data
connection for entertainment.xml (21289 bytes).
[7] Mon 25Aug03 13:31:01 - Sock ID=32
setsockopt(464,SOL_SOCKET,SO_OOBINLINE,0x010FA860,4) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32
setsockopt(464,SOL_SOCKET,SO_KEEPALIVE,0x010FA850,4) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32
setsockopt(464,IPPROTO_TCP,TCP_NODELAY,0x010FA840,4) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32
setsockopt(464,SOL_SOCKET,SO_SNDBUF,0x010FA834,4) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32
setsockopt(464,SOL_SOCKET,SO_RCVBUF,0x010FA824,4) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=30 RB_READ Stat=OK
[7] Mon 25Aug03 13:31:01 - Sock ID=30 recv(440,0x016CDC78,2048,0) -->
-1 (WSAEWOULDBLOCK)
[7] Mon 25Aug03 13:31:01 - Sock ID=30 WSAGetLastError() -->
WSAEWOULDBLOCK
[7] Mon 25Aug03 13:31:01 - Sock ID=32 FD_WRITE Stat=OK
[7] Mon 25Aug03 13:31:01 - Sock ID=32 send(464,0x016A0209,4096,0) -->
4096 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32 send(464,0x016A1209,4096,0) -->
4096 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32 send(464,0x016A2209,4096,0) -->
-1 (WSAEWOULDBLOCK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32 WSAGetLastError() -->
WSAEWOULDBLOCK
[7] Mon 25Aug03 13:31:01 - Sock ID=30 RB_WRITE Stat=OK
[7] Mon 25Aug03 13:31:01 - Sock ID=30 send(440,0x016C93C4,78,0) --> 78
(OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32 RB_WRITE Stat=OK
[7] Mon 25Aug03 13:31:01 - Sock ID=32 send(464,0x016A2209,4096,0) -->
-1 (WSAEWOULDBLOCK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32 WSAGetLastError() -->
WSAEWOULDBLOCK
[7] Mon 25Aug03 13:31:01 - Sock ID=30 FD_READ Stat=OK
[7] Mon 25Aug03 13:31:01 - Sock ID=30 recv(440,0x016CDC78,2048,0) --> 6
(OK)
[2] Mon 25Aug03 13:31:01 - (000012) QUIT
[6] Mon 25Aug03 13:31:01 - (000012) 221 Goodbye!
[7] Mon 25Aug03 13:31:01 - Sock ID=32
WSAAsyncSelect(464,65580,0,<<NONE>>) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32
setsockopt(464,SOL_SOCKET,SO_LINGER,0x010FB378,4) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32 shutdown(464,0) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32 shutdown(464,1) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=32 closesocket(464) --> 0 (OK)
[3] Mon 25Aug03 13:31:01 - (000012) Error sending file
c:\apache2\htdocs\momo\entertainment.xml, aborting (107 Kb/sec - 8192
bytes, reason unknown)
[6] Mon 25Aug03 13:31:01 - (000012) 426 Data connection closed, file
transfer entertainment.xml aborted.
[7] Mon 25Aug03 13:31:01 - Sock ID=30 RB_READ Stat=OK
[7] Mon 25Aug03 13:31:01 - Sock ID=30 recv(440,0x016CDC78,2048,0) --> 0
(OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=30 RB_WRITE Stat=OK
[5] Mon 25Aug03 13:31:01 - (000012) Closing connection for user MOMO
(00:00:02 connected)
[7] Mon 25Aug03 13:31:01 - Sock ID=30
WSAAsyncSelect(440,65580,0,<<NONE>>) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=30
setsockopt(440,SOL_SOCKET,SO_LINGER,0x010FEA1C,4) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=30 shutdown(440,0) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=30 shutdown(440,1) --> 0 (OK)
[7] Mon 25Aug03 13:31:01 - Sock ID=30 closesocket(440) --> 0 (OK)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=25239&edit=1