ID: 27552 Updated by: [EMAIL PROTECTED] Reported By: jeroen dot pulles at redslider dot net -Status: Open +Status: Assigned Bug Type: Sockets related Operating System: win32 PHP Version: 5CVS-2004-03-10 (dev) -Assigned To: +Assigned To: wez
Previous Comments: ------------------------------------------------------------------------ [2004-04-13 17:47:08] jeroen dot pulles at redslider dot net I am still experiencing the problem with 5.0.0.0 RC2-dev (April 12th windows snapshot). I tried the code on two networks. One network has a transparent firewall as far as HTTP traffic is concerned. The other is my home network, behind a simple router/nat solution. I have no reason to believe anything is tampering the data; Especially since a smaller message body _does_ work. I put up a simple test case on my website: http://www.redslider.net/test01/ I have no problem running fwrite_test.php with a small message size. However, the code still breaks when writing more than 8192 bytes. What I find weird is that the code runs fine, in any case, on a localhost webserver/website, but breaks on any remote host, irrespective of webserver software etcetera etcetera. I'm puzzled. Help is appreciated, jeroen ------------------------------------------------------------------------ [2004-04-07 06:03:29] [EMAIL PROTECTED] I can't reproduce this either. Are you sure there isn't some firewall or something in between that might somehow break this..? ------------------------------------------------------------------------ [2004-03-11 02:53:07] jeroen dot pulles at redslider dot net I am using the latest windows binary snapshot. (It's just that I'm not using the regular cmd.exe for command line work, but cygwin's bash.exe shell; Which is probably irrelevant anyway. For the record: I get the same result when running the reproduce code from cmd.exe.) ------------------------------------------------------------------------ [2004-03-10 12:06:25] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip Please try a real windows binary, not a cygwin emulation and see if the problem persists. ------------------------------------------------------------------------ [2004-03-10 11:39:19] jeroen dot pulles at redslider dot net Description: ------------ When writing data to a socket, the program fails when writing more than 8192 bytes, irrespective of a given buffersize. Specifics: - Windows 2000 - 5.0.0.0 RC1-dev (-200403101130) - Command line interface (using cygwin) - Almost no modules, just php_sockets.dll - Default php.ini(-dist), apart from E_ALL for the error logging Note: The socket shouldn't be blocking, I didn't ask for it, and set_stream_blocking(true) doesn't change it; I'm guessing this is some irrelevant (for me) implementation detail for PHP. Note: Writing to localhost does work. Note: Writing less than 8192 bytes does work (well, didn't check the exact size where failure starts to happen). Note: No problems on my Linux box and PHP 5.*. Reproduce code: --------------- <?php $socket = fsockopen('some-other-host', 80, $errno, $errmessage); $message_body = ''; for ($i = 0; $i < 4000; $i++) $message_body .= 'yadda '; $contentlength = strlen($message_body); $message = "POST / HTTP/1.0\r\n"; $message .= "Host: some-other-host\r\n"; $message .= "Content-Type: text/plain\r\n"; $message .= "Content-Length: $contentlength\r\n"; $message .= "\r\n"; $message .= $message_body; fwrite($socket, $message); fclose($socket); print($errmessage); print("Done\n"); ?> Expected result: ---------------- Expecting to just see "Done" Actual result: -------------- [EMAIL PROTECTED] bin/php fwrite-bug.php Notice: fwrite(): send of 8192 bytes failed with errno=0 A non-blocking socket o peration could not be completed immediately. in C:\home\wwwroot\aria\fwrite-bug.php on line 12 Done ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=27552&edit=1