ID: 27552 User updated by: jeroen dot pulles at redslider dot net Reported By: jeroen dot pulles at redslider dot net -Status: No Feedback +Status: Open Bug Type: Sockets related Operating System: win32 PHP Version: 5CVS-2004-03-10 (dev) New Comment:
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 Previous Comments: ------------------------------------------------------------------------ [2004-04-12 17:56:56] [EMAIL PROTECTED] No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Open". Thank you. ------------------------------------------------------------------------ [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