gh8472.phpt 735 B

1234567891011121314151617181920212223242526272829303132333435
  1. --TEST--
  2. GH-8472: The resource returned by stream_socket_accept may have incorrect metadata
  3. --FILE--
  4. <?php
  5. function setNonBlocking($stream)
  6. {
  7. $block = stream_get_meta_data($stream)['blocked'];
  8. if ($block) {
  9. stream_set_blocking($stream, false);
  10. }
  11. }
  12. $server = stream_socket_server("tcp://127.0.0.1:9100");
  13. setNonBlocking($server);
  14. $client = stream_socket_client("tcp://127.0.0.1:9100");
  15. $res = stream_socket_accept($server);
  16. stream_set_timeout($res, 1);
  17. setNonBlocking($res);
  18. fwrite($client, str_repeat('0', 5));
  19. $read = [$res];
  20. $write = [];
  21. $except = [];
  22. if (stream_select($read, $write, $except, 1)) {
  23. var_dump(fread($res, 4));
  24. var_dump(fread($res, 4));
  25. }
  26. ?>
  27. --EXPECT--
  28. string(4) "0000"
  29. string(1) "0"