diff options
| author | Ondřej Surý <ondrej@sury.org> | 2010-01-07 13:31:53 +0100 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2010-01-07 13:31:53 +0100 |
| commit | 0fab6db7cac8d2be99579dd049f812a8ff98e74f (patch) | |
| tree | 91f01b0d06916c78262404096bfd466b8e95e5b5 /ext/sockets | |
| parent | d3a8757891280dc6650ca7eead67830c794b0e7b (diff) | |
| download | php-upstream/5.3.1.tar.gz | |
Imported Upstream version 5.3.1upstream/5.3.1
Diffstat (limited to 'ext/sockets')
30 files changed, 723 insertions, 21 deletions
diff --git a/ext/sockets/config.m4 b/ext/sockets/config.m4 index 8ebd25b92..ce18979ce 100644 --- a/ext/sockets/config.m4 +++ b/ext/sockets/config.m4 @@ -1,5 +1,5 @@ dnl -dnl $Id: config.m4,v 1.15.4.1.2.1 2007/07/22 22:18:41 jani Exp $ +dnl $Id: config.m4 240160 2007-07-22 22:18:41Z jani $ dnl PHP_ARG_ENABLE(sockets, whether to enable sockets support, diff --git a/ext/sockets/config.w32 b/ext/sockets/config.w32 index 7b7a3ca50..320a19b1b 100644 --- a/ext/sockets/config.w32 +++ b/ext/sockets/config.w32 @@ -1,4 +1,4 @@ -// $Id: config.w32,v 1.1.8.2 2009/01/23 15:49:48 kalle Exp $ +// $Id: config.w32 274392 2009-01-23 15:49:49Z kalle $ // vim:ft=javascript ARG_ENABLE("sockets", "SOCKETS support", "no"); diff --git a/ext/sockets/php_sockets.h b/ext/sockets/php_sockets.h index fdf258d04..4f5c21e60 100644 --- a/ext/sockets/php_sockets.h +++ b/ext/sockets/php_sockets.h @@ -22,7 +22,7 @@ #ifndef PHP_SOCKETS_H #define PHP_SOCKETS_H -/* $Id: php_sockets.h,v 1.36.2.1.2.4.2.6 2009/01/24 12:42:19 bjori Exp $ */ +/* $Id: php_sockets.h 289417 2009-10-09 14:22:29Z pajoye $ */ #if HAVE_SOCKETS @@ -73,7 +73,9 @@ PHP_FUNCTION(socket_clear_error); #ifndef PHP_WIN32 typedef int PHP_SOCKET; +# define PHP_SOCKETS_API PHPAPI #else +# define PHP_SOCKETS_API __declspec(dllexport) typedef SOCKET PHP_SOCKET; #endif @@ -91,6 +93,8 @@ struct sockaddr_un { }; #endif +PHP_SOCKETS_API int php_sockets_le_socket(void); + /* Prototypes */ #ifdef ilia_0 /* not needed, only causes a compiler warning */ static int php_open_listen_sock(php_socket **php_sock, int port, int backlog TSRMLS_DC); diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c index 03d5c847d..6e74490a5 100644 --- a/ext/sockets/sockets.c +++ b/ext/sockets/sockets.c @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: sockets.c,v 1.171.2.9.2.14.2.20 2009/06/04 18:17:43 andrei Exp $ */ +/* $Id: sockets.c 289417 2009-10-09 14:22:29Z pajoye $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -323,6 +323,12 @@ ZEND_GET_MODULE(sockets) /* inet_ntop should be used instead of inet_ntoa */ int inet_ntoa_lock = 0; +PHP_SOCKETS_API int php_sockets_le_socket(void) /* {{{ */ +{ + return le_socket; +} +/* }}} */ + static void php_destroy_socket(zend_rsrc_list_entry *rsrc TSRMLS_DC) /* {{{ */ { php_socket *php_sock = (php_socket *) rsrc->ptr; @@ -364,14 +370,14 @@ static int php_open_listen_sock(php_socket **php_sock, int port, int backlog TSR sock->type = PF_INET; - if (bind(sock->bsd_socket, (struct sockaddr *)&la, sizeof(la)) < 0) { + if (bind(sock->bsd_socket, (struct sockaddr *)&la, sizeof(la)) != 0) { PHP_SOCKET_ERROR(sock, "unable to bind to given address", errno); close(sock->bsd_socket); efree(sock); return 0; } - if (listen(sock->bsd_socket, backlog) < 0) { + if (listen(sock->bsd_socket, backlog) != 0) { PHP_SOCKET_ERROR(sock, "unable to listen on socket", errno); close(sock->bsd_socket); efree(sock); diff --git a/ext/sockets/tests/bug46360.phpt b/ext/sockets/tests/bug46360.phpt new file mode 100644 index 000000000..c725a82f9 --- /dev/null +++ b/ext/sockets/tests/bug46360.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug 46360 - TCP_NODELAY constant (sock_get_option, sock_set_option) +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (version_compare(phpversion(), '5.2.7', '<')) { + die('skip old php, not eligible'); + } +?> +--FILE-- +<?php + var_dump('TCP_NODELAY'); +?> +--EXPECT-- +string(11) "TCP_NODELAY" diff --git a/ext/sockets/tests/socket_bind.phpt b/ext/sockets/tests/socket_bind.phpt new file mode 100644 index 000000000..15181e68a --- /dev/null +++ b/ext/sockets/tests/socket_bind.phpt @@ -0,0 +1,38 @@ +--TEST-- +ext/sockets - socket_bind - basic test +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip - sockets extension not available.'); + } +?> +--FILE-- +<?php + $rand = rand(1,999); + $s_c = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); + $s_bind = socket_bind($s_c, '0.0.0.0', 31330+$rand); + var_dump($s_bind); + + // Connect to destination address + $s_conn = socket_connect($s_c, 'www.php.net', 80); + var_dump($s_conn); + + // Write + $request = 'GET / HTTP/1.1' . "\r\n"; + $s_write = socket_write($s_c, $request); + var_dump($s_write); + + // Close + $s_close = socket_close($s_c); + var_dump($s_close); +?> + +--EXPECTF-- +bool(true) +bool(true) +int(16) +NULL + diff --git a/ext/sockets/tests/socket_bind_params.phpt b/ext/sockets/tests/socket_bind_params.phpt new file mode 100644 index 000000000..d68a62a47 --- /dev/null +++ b/ext/sockets/tests/socket_bind_params.phpt @@ -0,0 +1,29 @@ +--TEST-- +ext/sockets - socket_bind - test with empty parameters +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip - sockets extension not available.'); + } +?> +--FILE-- +<?php + $rand = rand(1,999); + $s_c = socket_create_listen(31330+$rand); + $s_w = socket_bind(); + var_dump($s_w); + $s_w = socket_bind($s_c); + var_dump($s_w); + socket_close($s_c); + +?> +--EXPECTF-- + +Warning: socket_bind() expects at least 2 parameters, 0 given in %s on line %i +NULL + +Warning: socket_bind() expects at least 2 parameters, 1 given in %s on line %i +NULL diff --git a/ext/sockets/tests/socket_close_params.phpt b/ext/sockets/tests/socket_close_params.phpt new file mode 100644 index 000000000..a00330f5e --- /dev/null +++ b/ext/sockets/tests/socket_close_params.phpt @@ -0,0 +1,21 @@ +--TEST-- +ext/sockets - socket_close - test with empty parameters +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip - sockets extension not available.'); + } +?> +--FILE-- +<?php + // wrong parameter count + $s_c = socket_close(); + var_dump($s_c); +?> +--EXPECTF-- + +Warning: socket_close() expects exactly 1 parameter, 0 given in %s on line %i +NULL diff --git a/ext/sockets/tests/socket_connect_error.phpt b/ext/sockets/tests/socket_connect_error.phpt new file mode 100644 index 000000000..33e60f3d5 --- /dev/null +++ b/ext/sockets/tests/socket_connect_error.phpt @@ -0,0 +1,33 @@ +--TEST-- +Test error cases when creating a socket +--CREDITS-- +Russell Flynn <russ@redpill-linpro.com> +#PHPTestFest2009 Norway 2009-06-09 \o/ +--INI-- +error_reporting=E_ALL +display_errors=1 +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + echo 'skip sockets extension not available.'; +} +?> +--FILE-- +<?php + // Test with no arguments + $server = socket_create(); + + // Test with less arguments than required + $server = socket_create(SOCK_STREAM, getprotobyname('tcp')); + + // Test with non integer parameters + $server = socket_create(array(), 1, 1); + +?> +--EXPECTF-- +Warning: socket_create() expects exactly 3 parameters, 0 given in %s on line %d + +Warning: socket_create() expects exactly 3 parameters, 2 given in %s on line %d + +Warning: socket_create() expects parameter 1 to be long, array given in %s on line %d + diff --git a/ext/sockets/tests/socket_connect_params.phpt b/ext/sockets/tests/socket_connect_params.phpt new file mode 100644 index 000000000..c8dff06e8 --- /dev/null +++ b/ext/sockets/tests/socket_connect_params.phpt @@ -0,0 +1,33 @@ +--TEST-- +ext/sockets - socket_connect - test with empty parameters +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip - sockets extension not available.'); + } +?> +--FILE-- +<?php + $rand = rand(1,999); + $s_c = socket_create_listen(31330+$rand); + // wrong parameter count + $s_w = socket_connect(); + $s_w = socket_connect($s_c); + $s_w = socket_connect($s_c, '0.0.0.0'); + $s_w = socket_connect($s_c, '0.0.0.0', 31330+$rand); + + socket_close($s_c); + +?> +--EXPECTF-- + +Warning: socket_connect() expects at least 2 parameters, 0 given in %s on line %i + +Warning: socket_connect() expects at least 2 parameters, 1 given in %s on line %i + +Warning: socket_connect(): Socket of type AF_INET requires 3 arguments in %s on line %i + +Warning: socket_connect(): unable to connect [%i]: Transport endpoint is already connected in %s on line %i diff --git a/ext/sockets/tests/socket_create_listen.phpt b/ext/sockets/tests/socket_create_listen.phpt index 6d607cab6..440fade61 100644 --- a/ext/sockets/tests/socket_create_listen.phpt +++ b/ext/sockets/tests/socket_create_listen.phpt @@ -1,5 +1,5 @@ --TEST-- -Test if socket binds on 31337 +Test if socket binds on 31338 --SKIPIF-- <?php if (!extension_loaded('sockets')) { @@ -7,12 +7,12 @@ if (!extension_loaded('sockets')) { } --FILE-- <?php -$sock = socket_create_listen(31337); +$sock = socket_create_listen(31338); socket_getsockname($sock, $addr, $port); var_dump($addr, $port); --EXPECT-- string(7) "0.0.0.0" -int(31337) +int(31338) --CREDITS-- Till Klampaeckel, till@php.net PHP Testfest Berlin 2009-05-09 diff --git a/ext/sockets/tests/socket_create_listen_params.phpt b/ext/sockets/tests/socket_create_listen_params.phpt new file mode 100644 index 000000000..56a9c8de2 --- /dev/null +++ b/ext/sockets/tests/socket_create_listen_params.phpt @@ -0,0 +1,23 @@ +--TEST-- +ext/sockets - socket_create_listen - test for empty parameters +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip - sockets extension not available.'); + } +?> +--FILE-- +<?php + $rand = rand(1,999); + $s_c_l = socket_create_listen(); + var_dump($s_c_l); + if ($s_c_l !== false) { + @socket_close($s_c_l); + } +?> +--EXPECTF-- +Warning: socket_create_listen() expects at least 1 parameter, 0 given in %s on line %i +NULL diff --git a/ext/sockets/tests/socket_create_listen_used.phpt b/ext/sockets/tests/socket_create_listen_used.phpt new file mode 100644 index 000000000..d89f1b70e --- /dev/null +++ b/ext/sockets/tests/socket_create_listen_used.phpt @@ -0,0 +1,30 @@ +--TEST-- +ext/sockets - socket_create_listen - test for used socket +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip - sockets extension not available.'); + } +?> +--FILE-- +<?php + $rand = rand(1,999); + // wrong parameter count + $s_c_l = socket_create_listen(31330+$rand); + var_dump($s_c_l); + // default invocation + $s_c_l2 = socket_create_listen(31330+$rand); + var_dump($s_c_l2); + socket_close($s_c_l2); + socket_close($s_c_l); +?> +--EXPECTF-- +resource(%i) of type (Socket) + +Warning: socket_create_listen(): unable to bind to given address [%i]: Address already in use in %s on line %i +bool(false) + +Warning: socket_close() expects parameter 1 to be resource, boolean given in %s on line %i diff --git a/ext/sockets/tests/socket_create_pair-wrongparams.phpt b/ext/sockets/tests/socket_create_pair-wrongparams.phpt index 64c5048ed..99512bcc3 100644 --- a/ext/sockets/tests/socket_create_pair-wrongparams.phpt +++ b/ext/sockets/tests/socket_create_pair-wrongparams.phpt @@ -24,17 +24,17 @@ NULL Warning: socket_create_pair() expects parameter 1 to be long, %unicode_string_optional% given in %s on line %d NULL -Warning: socket_create_pair(): unable to create socket pair [94]: Socket type not supported in %s on line %d +Warning: socket_create_pair(): unable to create socket pair [%d]: %s not supported in %s on line %d bool(false) Warning: socket_create_pair(): invalid socket domain [31337] specified for argument 1, assuming AF_INET in %s on line %d -Warning: socket_create_pair(): unable to create socket pair [94]: Socket type not supported in %s on line %d +Warning: socket_create_pair(): unable to create socket pair [%d]: %s not supported in %s on line %d bool(false) Warning: socket_create_pair(): invalid socket type [31337] specified for argument 2, assuming SOCK_STREAM in %s on line %d -Warning: socket_create_pair(): unable to create socket pair [95]: Operation not supported in %s on line %d +Warning: socket_create_pair(): unable to create socket pair [%d]: %s not supported %s on line %d bool(false) --CREDITS-- Till Klampaeckel, till@php.net diff --git a/ext/sockets/tests/socket_create_params.phpt b/ext/sockets/tests/socket_create_params.phpt new file mode 100644 index 000000000..13a1c73ee --- /dev/null +++ b/ext/sockets/tests/socket_create_params.phpt @@ -0,0 +1,24 @@ +--TEST-- +ext/sockets - socket_create - test with empty parameters +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip sockets extension not available.'); + } +?> +--FILE-- +<?php + $s_w = socket_create(); + $s_w = socket_create(AF_INET); + $s_w = socket_create(AF_INET, SOCK_STREAM); +?> +--EXPECTF-- + +Warning: socket_create() expects exactly 3 parameters, 0 given in %s on line %i + +Warning: socket_create() expects exactly 3 parameters, 1 given in %s on line %i + +Warning: socket_create() expects exactly 3 parameters, 2 given in %s on line %i diff --git a/ext/sockets/tests/socket_getpeername.phpt b/ext/sockets/tests/socket_getpeername.phpt new file mode 100644 index 000000000..2252992c0 --- /dev/null +++ b/ext/sockets/tests/socket_getpeername.phpt @@ -0,0 +1,33 @@ +--TEST-- +ext/sockets - socket_getsockname - basic test +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip sockets extension not available.'); + } +?> +--FILE-- +<?php + $rand = rand(1,999); + $s_c = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); + $s_bind = socket_bind($s_c, '0.0.0.0', 31330+$rand); + var_dump($s_bind); + + // Connect to destination address + $s_peer = socket_getpeername($s_c, $ip, $port); + var_dump($s_peer); + var_dump($ip); + var_dump($port); + socket_close($s_c); +?> + +--EXPECTF-- +bool(true) + +Warning: socket_getpeername(): unable to retrieve peer name [%i]: Transport endpoint is not connected in %s on line %i +bool(false) +NULL +NULL diff --git a/ext/sockets/tests/socket_getpeername_ipv4loop.phpt b/ext/sockets/tests/socket_getpeername_ipv4loop.phpt new file mode 100644 index 000000000..aa59abb8d --- /dev/null +++ b/ext/sockets/tests/socket_getpeername_ipv4loop.phpt @@ -0,0 +1,59 @@ +--TEST-- +ext/sockets - socket_getpeername_ipv4loop - basic test +--CREDITS-- +# TestFest 2009 - NorwayUG +# $Id: socket_getpeername_ipv4loop.phpt 494 2009-06-09 20:38:05Z tatjana.andersen@redpill-linpro.com $ +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip sockets extension not available.'); + } +?> +--FILE-- +<?php + /* Bind and connect sockets to localhost */ + $localhost = '127.0.0.1'; + + /* Hold the port associated to address */ + $port = 31337; + + /* Setup socket server */ + $server = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp')); + if (!$server) { + die('Unable to create AF_INET socket [server]'); + } + + if (!socket_bind($server, $localhost, $port)) { + die('Unable to bind to '.$localhost.':'.$port); + } + if (!socket_listen($server, 2)) { + die('Unable to listen on socket'); + } + + /* Connect to it */ + $client = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp')); + if (!$client) { + die('Unable to create AF_INET socket [client]'); + } + if (!socket_connect($client, $localhost, $port)) { + die('Unable to connect to server socket'); + } + + /* Accept that connection */ + $socket = socket_accept($server); + if (!$socket) { + die('Unable to accept connection'); + } + + if (!socket_getpeername($client, $address, $port)) { + die('Unable to retrieve peer name'); + } + var_dump($address, $port); + + socket_close($client); + socket_close($socket); + socket_close($server); +?> +--EXPECT-- +string(9) "127.0.0.1" +int(31337) diff --git a/ext/sockets/tests/socket_getpeername_ipv6loop.phpt b/ext/sockets/tests/socket_getpeername_ipv6loop.phpt new file mode 100644 index 000000000..ba3c1347d --- /dev/null +++ b/ext/sockets/tests/socket_getpeername_ipv6loop.phpt @@ -0,0 +1,59 @@ +--TEST-- +ext/sockets - socket_getpeername_ipv6loop - basic test +--CREDITS-- +# TestFest 2009 - NorwayUG +# $Id: socket_getpeername_ipv6loop.phpt 494 2009-06-09 20:38:05Z tatjana.andersen@redpill-linpro.com $ +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip sockets extension not available.'); + } +?> +--FILE-- +<?php + /* Bind and connect sockets to localhost */ + $localhost = '::1'; + + /* Hold the port associated to address */ + $port = 31337; + + /* Setup socket server */ + $server = socket_create(AF_INET6, SOCK_STREAM, getprotobyname('tcp')); + if (!$server) { + die('Unable to create AF_INET6 socket [server]'); + } + + if (!socket_bind($server, $localhost, $port)) { + die('Unable to bind to '.$localhost.':'.$port); + } + if (!socket_listen($server, 2)) { + die('Unable to listen on socket'); + } + + /* Connect to it */ + $client = socket_create(AF_INET6, SOCK_STREAM, getprotobyname('tcp')); + if (!$client) { + die('Unable to create AF_INET6 socket [client]'); + } + if (!socket_connect($client, $localhost, $port)) { + die('Unable to connect to server socket'); + } + + /* Accept that connection */ + $socket = socket_accept($server); + if (!$socket) { + die('Unable to accept connection'); + } + + if (!socket_getpeername($client, $address, $port)) { + die('Unable to retrieve peer name'); + } + var_dump($address, $port); + + socket_close($client); + socket_close($socket); + socket_close($server); +?> +--EXPECT-- +string(3) "::1" +int(31337) diff --git a/ext/sockets/tests/socket_getsockname.phpt b/ext/sockets/tests/socket_getsockname.phpt new file mode 100644 index 000000000..877bef501 --- /dev/null +++ b/ext/sockets/tests/socket_getsockname.phpt @@ -0,0 +1,32 @@ +--TEST-- +ext/sockets - socket_getsockname - basic test +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip sockets extension not available.'); + } +?> +--FILE-- +<?php + $rand = rand(1,999); + $s_c = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); + $s_bind = socket_bind($s_c, '0.0.0.0', 31330+$rand); + var_dump($s_bind); + + // Connect to destination address + $s_conn = socket_getsockname($s_c, $ip, $port); + var_dump($s_conn); + var_dump($ip); + var_dump($port); + socket_close($s_c); +?> + +--EXPECTF-- +bool(true) +bool(true) +string(7) "0.0.0.0" +int(%i) + diff --git a/ext/sockets/tests/socket_listen_params.phpt b/ext/sockets/tests/socket_listen_params.phpt new file mode 100644 index 000000000..65c11170f --- /dev/null +++ b/ext/sockets/tests/socket_listen_params.phpt @@ -0,0 +1,21 @@ +--TEST-- +ext/sockets - socket_listen - test with empty parameters +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip sockets extension not available.'); + } +?> +--FILE-- +<?php + // wrong parameter count + $s_c = socket_listen(); + var_dump($s_c); +?> +--EXPECTF-- + +Warning: socket_listen() expects at least 1 parameter, 0 given in %s on line %i +NULL diff --git a/ext/sockets/tests/socket_read_params.phpt b/ext/sockets/tests/socket_read_params.phpt new file mode 100644 index 000000000..69af710ca --- /dev/null +++ b/ext/sockets/tests/socket_read_params.phpt @@ -0,0 +1,28 @@ +--TEST-- +ext/sockets - socket_read- test with empty parameters +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip sockets extension not available.'); + } +?> +--FILE-- +<?php + $rand = rand(1,999); + // wrong parameter count + $s_c = socket_read(); + $s_c = socket_read(14); + $s_c_l = socket_create_listen(31330+$rand); + $s_c = socket_read($s_c_l, 25); + socket_close($s_c_l); +?> +--EXPECTF-- + +Warning: socket_read() expects at least 2 parameters, 0 given in %s on line %i + +Warning: socket_read() expects at least 2 parameters, 1 given in %s on line %i + +Warning: socket_read(): unable to read from socket [%i]: Transport endpoint is not connected in %s on line %i diff --git a/ext/sockets/tests/socket_sentto_recvfrom_ipv4_udp.phpt b/ext/sockets/tests/socket_sentto_recvfrom_ipv4_udp.phpt index 64b657a48..8b7ed0bd3 100644 --- a/ext/sockets/tests/socket_sentto_recvfrom_ipv4_udp.phpt +++ b/ext/sockets/tests/socket_sentto_recvfrom_ipv4_udp.phpt @@ -44,7 +44,7 @@ if (!extension_loaded('sockets')) { socket_close($socket); --EXPECTF-- -Warning: socket_recvfrom(): unable to recvfrom [11]: Resource temporarily unavailable in %s on line %d +Warning: socket_recvfrom(): unable to recvfrom [%d]: Resource temporarily unavailable in %s on line %d Warning: Wrong parameter count for socket_sendto() in %s on line %d diff --git a/ext/sockets/tests/socket_sentto_recvfrom_unix.phpt b/ext/sockets/tests/socket_sentto_recvfrom_unix.phpt index 94eac3bdf..ab111898b 100644 --- a/ext/sockets/tests/socket_sentto_recvfrom_unix.phpt +++ b/ext/sockets/tests/socket_sentto_recvfrom_unix.phpt @@ -26,8 +26,10 @@ if (!extension_loaded('sockets')) { $bytes_sent = socket_sendto($socket, $msg, $len, 0); // cause warning $bytes_sent = socket_sendto($socket, $msg, $len, 0, $address); if ($bytes_sent == -1) { + @unlink($address); die('An error occured while sending to the socket'); } else if ($bytes_sent != $len) { + @unlink($address); die($bytes_sent . ' bytes have been sent instead of the ' . $len . ' bytes expected'); } @@ -35,17 +37,21 @@ if (!extension_loaded('sockets')) { var_dump(socket_recvfrom($socket, $buf, 0, 0, $from)); // expect false $bytes_received = socket_recvfrom($socket, $buf, 12, 0, $from); if ($bytes_received == -1) { + @unlink($address); die('An error occured while receiving from the socket'); } else if ($bytes_received != $len) { + @unlink($address); die($bytes_received . ' bytes have been received instead of the ' . $len . ' bytes expected'); } echo "Received $buf"; socket_close($socket); + @unlink($address); +?> --EXPECTF-- -Warning: socket_create(): Unable to create socket [93]: Protocol not supported in %s on line %d +Warning: socket_create(): Unable to create socket [%d]: Protocol not supported in %s on line %d -Warning: socket_recvfrom(): unable to recvfrom [11]: Resource temporarily unavailable in %s on line %d +Warning: socket_recvfrom(): unable to recvfrom [%d]: Resource temporarily unavailable in %s on line %d Warning: socket_sendto() expects at least 5 parameters, 4 given in %s on line %d bool(false) diff --git a/ext/sockets/tests/socket_set_block-retval.phpt b/ext/sockets/tests/socket_set_block-retval.phpt index fe09d5a5b..2aa4b0e5c 100644 --- a/ext/sockets/tests/socket_set_block-retval.phpt +++ b/ext/sockets/tests/socket_set_block-retval.phpt @@ -9,11 +9,11 @@ if (!extension_loaded('sockets')) { --FILE-- <?php -$socket = socket_create_listen(31337); +$socket = socket_create_listen(31339); var_dump(socket_set_block($socket)); socket_close($socket); -$socket2 = socket_create_listen(31338); +$socket2 = socket_create_listen(31340); socket_close($socket2); var_dump(socket_set_block($socket2)); diff --git a/ext/sockets/tests/socket_set_nonblock-retval.phpt b/ext/sockets/tests/socket_set_nonblock-retval.phpt index 3c4b5151a..b90861859 100644 --- a/ext/sockets/tests/socket_set_nonblock-retval.phpt +++ b/ext/sockets/tests/socket_set_nonblock-retval.phpt @@ -9,11 +9,11 @@ if (!extension_loaded('sockets')) { --FILE-- <?php -$socket = socket_create_listen(31337); +$socket = socket_create_listen(31339); var_dump(socket_set_nonblock($socket)); socket_close($socket); -$socket2 = socket_create_listen(31338); +$socket2 = socket_create_listen(31340); socket_close($socket2); var_dump(socket_set_nonblock($socket2)); diff --git a/ext/sockets/tests/socket_set_nonblock.phpt b/ext/sockets/tests/socket_set_nonblock.phpt new file mode 100644 index 000000000..55137d358 --- /dev/null +++ b/ext/sockets/tests/socket_set_nonblock.phpt @@ -0,0 +1,24 @@ +--TEST-- +ext/sockets - socket_set_block - basic test +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip sockets extension not available.'); + } +?> +--FILE-- +<?php + $rand = rand(1,999); + $s_c_l = socket_create_listen(31330+$rand); + socket_set_nonblock($s_c_l); + var_dump($s_c_l); + #socket_accept($s_c_l); + socket_close($s_c_l); +?> + +--EXPECTF-- +resource(%i) of type (Socket) + diff --git a/ext/sockets/tests/socket_strerror.phpt b/ext/sockets/tests/socket_strerror.phpt new file mode 100644 index 000000000..074d2ff7f --- /dev/null +++ b/ext/sockets/tests/socket_strerror.phpt @@ -0,0 +1,154 @@ +--TEST-- +ext/sockets - socket_strerror - basic test +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip sockets extension not available.'); + } +?> +--FILE-- +<?php + $s_s = socket_strerror(); + for ($i=0;$i<=132;$i++) { + var_dump(socket_strerror($i)); + } +?> +--EXPECTF-- + +Warning: socket_strerror() expects exactly 1 parameter, 0 given in %s on line %i +string(7) "Success" +string(23) "Operation not permitted" +string(25) "No such file or directory" +string(15) "No such process" +string(23) "Interrupted system call" +string(18) "Input/output error" +string(25) "No such device or address" +string(22) "Argument list too long" +string(17) "Exec format error" +string(19) "Bad file descriptor" +string(18) "No child processes" +string(32) "Resource temporarily unavailable" +string(22) "Cannot allocate memory" +string(17) "Permission denied" +string(11) "Bad address" +string(21) "Block device required" +string(23) "Device or resource busy" +string(11) "File exists" +string(25) "Invalid cross-device link" +string(14) "No such device" +string(15) "Not a directory" +string(14) "Is a directory" +string(16) "Invalid argument" +string(29) "Too many open files in system" +string(19) "Too many open files" +string(30) "Inappropriate ioctl for device" +string(14) "Text file busy" +string(14) "File too large" +string(23) "No space left on device" +string(12) "Illegal seek" +string(21) "Read-only file system" +string(14) "Too many links" +string(11) "Broken pipe" +string(32) "Numerical argument out of domain" +string(29) "Numerical result out of range" +string(25) "Resource deadlock avoided" +string(18) "File name too long" +string(18) "No locks available" +string(24) "Function not implemented" +string(19) "Directory not empty" +string(33) "Too many levels of symbolic links" +string(16) "Unknown error 41" +string(26) "No message of desired type" +string(18) "Identifier removed" +string(27) "Channel number out of range" +string(24) "Level 2 not synchronized" +string(14) "Level 3 halted" +string(13) "Level 3 reset" +string(24) "Link number out of range" +string(28) "Protocol driver not attached" +string(26) "No CSI structure available" +string(14) "Level 2 halted" +string(16) "Invalid exchange" +string(26) "Invalid request descriptor" +string(13) "Exchange full" +string(8) "No anode" +string(20) "Invalid request code" +string(12) "Invalid slot" +string(16) "Unknown error 58" +string(20) "Bad font file format" +string(19) "Device not a stream" +string(17) "No data available" +string(13) "Timer expired" +string(24) "Out of streams resources" +string(29) "Machine is not on the network" +string(21) "Package not installed" +string(16) "Object is remote" +string(21) "Link has been severed" +string(15) "Advertise error" +string(13) "Srmount error" +string(27) "Communication error on send" +string(14) "Protocol error" +string(18) "Multihop attempted" +string(18) "RFS specific error" +string(11) "Bad message" +string(37) "Value too large for defined data type" +string(26) "Name not unique on network" +string(28) "File descriptor in bad state" +string(22) "Remote address changed" +string(38) "Can not access a needed shared library" +string(36) "Accessing a corrupted shared library" +string(31) ".lib section in a.out corrupted" +string(47) "Attempting to link in too many shared libraries" +string(37) "Cannot exec a shared library directly" +string(49) "Invalid or incomplete multibyte or wide character" +string(43) "Interrupted system call should be restarted" +string(18) "Streams pipe error" +string(14) "Too many users" +string(30) "Socket operation on non-socket" +string(28) "Destination address required" +string(16) "Message too long" +string(30) "Protocol wrong type for socket" +string(22) "Protocol not available" +string(22) "Protocol not supported" +string(25) "Socket type not supported" +string(23) "Operation not supported" +string(29) "Protocol family not supported" +string(40) "Address family not supported by protocol" +string(22) "Address already in use" +string(31) "Cannot assign requested address" +string(15) "Network is down" +string(22) "Network is unreachable" +string(35) "Network dropped connection on reset" +string(32) "Software caused connection abort" +string(24) "Connection reset by peer" +string(25) "No buffer space available" +string(39) "Transport endpoint is already connected" +string(35) "Transport endpoint is not connected" +string(45) "Cannot send after transport endpoint shutdown" +string(34) "Too many references: cannot splice" +string(20) "Connection timed out" +string(18) "Connection refused" +string(12) "Host is down" +string(16) "No route to host" +string(29) "Operation already in progress" +string(25) "Operation now in progress" +string(21) "Stale NFS file handle" +string(24) "Structure needs cleaning" +string(27) "Not a XENIX named type file" +string(29) "No XENIX semaphores available" +string(20) "Is a named type file" +string(16) "Remote I/O error" +string(19) "Disk quota exceeded" +string(15) "No medium found" +string(17) "Wrong medium type" +string(18) "Operation canceled" +string(26) "Required key not available" +string(15) "Key has expired" +string(20) "Key has been revoked" +string(27) "Key was rejected by service" +string(10) "Owner died" +string(21) "State not recoverable" +string(17) "Unknown error 132" diff --git a/ext/sockets/tests/socket_write_params.phpt b/ext/sockets/tests/socket_write_params.phpt new file mode 100644 index 000000000..e23766ea6 --- /dev/null +++ b/ext/sockets/tests/socket_write_params.phpt @@ -0,0 +1,28 @@ +--TEST-- +ext/sockets - socket_write - test with empty parameters +--CREDITS-- +Florian Anderiasch +fa@php.net +--SKIPIF-- +<?php + if (!extension_loaded('sockets')) { + die('skip sockets extension not available.'); + } +?> +--FILE-- +<?php + $rand = rand(1,999); + // wrong parameter count + $s_w = socket_write(); + $s_c = socket_create_listen(31330+$rand); + $s_w = socket_write($s_c); + $s_w = socket_write($s_c, "foo"); + socket_close($s_c); +?> +--EXPECTF-- + +Warning: socket_write() expects at least 2 parameters, 0 given in %s on line %i + +Warning: socket_write() expects at least 2 parameters, 1 given in %s on line %i + +Warning: socket_write(): unable to write to socket [%i]: Broken pipe in %s on line %i diff --git a/ext/sockets/unix_socket_constants.h b/ext/sockets/unix_socket_constants.h index 96dd7fbea..8403425c9 100644 --- a/ext/sockets/unix_socket_constants.h +++ b/ext/sockets/unix_socket_constants.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: unix_socket_constants.h,v 1.5.2.1.2.1.2.2 2008/12/31 11:15:43 sebastian Exp $ */ +/* $Id: unix_socket_constants.h 272370 2008-12-31 11:15:49Z sebastian $ */ /* This file is to be included by sockets.c */ diff --git a/ext/sockets/win32_socket_constants.h b/ext/sockets/win32_socket_constants.h index e2738ca37..f593ec674 100644 --- a/ext/sockets/win32_socket_constants.h +++ b/ext/sockets/win32_socket_constants.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: win32_socket_constants.h,v 1.5.2.1.2.1.2.2 2008/12/31 11:15:43 sebastian Exp $ */ +/* $Id: win32_socket_constants.h 272370 2008-12-31 11:15:49Z sebastian $ */ /* This file is to be included by sockets.c */ |
