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

Reply via email to