#16114 [Opn->Fbk]: fputs doesn't send all data(better now!)

From: Date: Sun, 13 Oct 2002 23:54:28 +0000
Subject: #16114 [Opn->Fbk]: fputs doesn't send all data(better now!)
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-22326@lists.php.net to get a copy of this message
ID: 16114 Updated by: wez@php.net Reported By: manu@chasqui.uclv.edu.cu -Status: Open +Status: Feedback Bug Type: Sockets related Operating System: Windows 2000 AS PHP Version: 4.1.1-4.3/CVS New Comment: Please try the next snapshot. Previous Comments: ------------------------------------------------------------------------ [2002-10-13 18:40:35] wez@php.net Scratch that; I just discovered something in the MSDN docs. ------------------------------------------------------------------------ [2002-10-13 18:34:13] wez@php.net I've just committed a little patch that might fix this problem; PHP was calling shutdown(2) prior to closing the socket, and this may have been causing the data-loss. If you can compile PHP yourself, comment out the shutdown line in main/network.c. Otherwise, you need to wait for the next snapshot to be built (could be 3 hours away). Please let me know how you get on. ------------------------------------------------------------------------ [2002-10-13 15:08:38] manu@chasqui.uclv.edu.cu The lastest snapshot(Oct 13, 2002; php4-win32-latest.zip) works almost fine. This code: $socket = @fsockopen( 'localhost', 80, $err1, $err2 ); if (!$socket) die('socket not open'); $result = fputs( $socket, $request ); #$request holds a well formed MIME request for posting a file. fflush( $socket ); //echo "<pre>>>\r\n".str_replace('</pre>', '&lt;/pre>', $request)."<<\r\n</pre>"; fclose( $socket ); This works if the file being posted is small(can't say how much). The point is that if I uncomment the echo line before fclose(), it sends all the data(up to 10.5M=11,076,608 bytes I sent), but without the echo line, it seems that fclose() executes in such a way that chops the socket's output stream and the Web Server does not executes the receive.php script. The echo line may be replace by sleep(8) and still working. Summary: Give it time before fclose() a works; otherwise, unstable. Manu. ------------------------------------------------------------------------ [2002-09-26 10:38:03] wez@php.net What's the status on this? Are you sure this is an issue with fputs and not instead an issue with file upload to a PHP script? What are you connecting to? If you are testing again, please try the latest snapshot; more changes have been made. http://snaps.php.net/win32/ ------------------------------------------------------------------------ [2002-07-21 12:42:05] manu@chasqui.uclv.edu.cu I downloaded the file php4-win32-200207182200.zip and made a test uploading a 3.2MB file. It didn't work. With smallers files(a test with a 13b one) works. I'll do a test trying to establish the failure boundaries. Manu. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/16114 -- Edit this bug report at http://bugs.php.net/?id=16114&edit=1

« previous php.bugs (#22326) next »