forked from php/php-src
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* PHP-5.4: Fix wrong blocking state being set Fix tests (Windows) Remove a Windows only warning Move & improve PHP_SOCKET_ERROR def Move some declarations to sockets.c Fix overbroad skipif include
- Loading branch information
Showing
7 changed files
with
110 additions
and
59 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
62 changes: 62 additions & 0 deletions
62
ext/sockets/tests/socket_sentto_recvfrom_ipv6_udp-win32.phpt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
--TEST-- | ||
Test if socket_recvfrom() receives data sent by socket_sendto() via IPv6 UDP (Win32) | ||
--SKIPIF-- | ||
<?php | ||
if (!extension_loaded('sockets')) { | ||
die('SKIP The sockets extension is not loaded.'); | ||
} | ||
if (substr(PHP_OS, 0, 3) != 'WIN') { | ||
die('skip only for Windows'); | ||
} | ||
require 'ipv6_skipif.inc'; | ||
--FILE-- | ||
<?php | ||
$socket = socket_create(AF_INET6, SOCK_DGRAM, SOL_UDP); | ||
if (!$socket) { | ||
die('Unable to create AF_INET6 socket'); | ||
} | ||
if (!socket_set_nonblock($socket)) { | ||
die('Unable to set nonblocking mode for socket'); | ||
} | ||
socket_recvfrom($socket, $buf, 12, 0, $from, $port); // cause warning | ||
$address = '::1'; | ||
socket_sendto($socket, '', 1, 0, $address); // cause warning | ||
if (!socket_bind($socket, $address, 1223)) { | ||
die("Unable to bind to $address:1223"); | ||
} | ||
|
||
$msg = "Ping!"; | ||
$len = strlen($msg); | ||
$bytes_sent = socket_sendto($socket, $msg, $len, 0, $address, 1223); | ||
if ($bytes_sent == -1) { | ||
die('An error occurred while sending to the socket'); | ||
} else if ($bytes_sent != $len) { | ||
die($bytes_sent . ' bytes have been sent instead of the ' . $len . ' bytes expected'); | ||
} | ||
|
||
$from = ""; | ||
$port = 0; | ||
socket_recvfrom($socket, $buf, 12, 0); // cause warning | ||
socket_recvfrom($socket, $buf, 12, 0, $from); // cause warning | ||
$bytes_received = socket_recvfrom($socket, $buf, 12, 0, $from, $port); | ||
if ($bytes_received == -1) { | ||
die('An error occurred while receiving from the socket'); | ||
} else if ($bytes_received != $len) { | ||
die($bytes_received . ' bytes have been received instead of the ' . $len . ' bytes expected'); | ||
} | ||
echo "Received $buf from remote address $from and remote port $port" . PHP_EOL; | ||
|
||
socket_close($socket); | ||
--EXPECTF-- | ||
Warning: socket_recvfrom(): unable to recvfrom [10022]: An invalid argument was supplied. | ||
in %s on line %d | ||
|
||
Warning: Wrong parameter count for socket_sendto() in %s on line %d | ||
|
||
Warning: socket_recvfrom() expects at least 5 parameters, 4 given in %s on line %d | ||
|
||
Warning: Wrong parameter count for socket_recvfrom() in %s on line %d | ||
Received Ping! from remote address ::1 and remote port 1223 | ||
--CREDITS-- | ||
Falko Menge <mail at falko-menge dot de> | ||
PHP Testfest Berlin 2009-05-09 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters