socket_abstract_path.phpt 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. --TEST--
  2. Support for paths in the abstract namespace (bind, connect)
  3. --EXTENSIONS--
  4. sockets
  5. --SKIPIF--
  6. <?php
  7. if (PHP_OS != 'Linux') {
  8. die('skip For Linux only');
  9. }
  10. ?>
  11. --FILE--
  12. <?php
  13. include __DIR__."/mcast_helpers.php.inc";
  14. $path = "\x00/foo_bar";
  15. echo "creating server socket\n";
  16. $servers = socket_create(AF_UNIX, SOCK_STREAM, 0) or die("err");
  17. socket_bind($servers, $path) or die("Could not bind");
  18. socket_listen($servers) or die("Could not listen");
  19. socket_set_nonblock($servers) or die("Could not put in non-blocking mode");
  20. echo "creating client socket\n";
  21. $clients = socket_create(AF_UNIX, SOCK_STREAM, 0) or die("err");
  22. socket_connect($clients, $path) or die("Error connecting");
  23. $conns = socket_accept($servers) or die("Could not accept connection");
  24. $r = socket_sendmsg($clients, [
  25. //"name" => [ "addr" => $path, ],
  26. "iov" => ["test ", "thing", "\n"],
  27. ], 0);
  28. var_dump($r);
  29. checktimeout($conns, 500);
  30. if (!socket_recv($conns, $buf, 20, 0)) die("recv");
  31. print_r($buf);
  32. ?>
  33. --EXPECT--
  34. creating server socket
  35. creating client socket
  36. int(11)
  37. test thing