ID:               27552
 Updated by:       [EMAIL PROTECTED]
 Reported By:      jeroen dot pulles at redslider dot net
-Status:           Feedback
+Status:           No Feedback
 Bug Type:         Sockets related
 Operating System: win32
 PHP Version:      5CVS-2004-03-10 (dev)
 New Comment:

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.




Previous Comments:
------------------------------------------------------------------------

[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