mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
ext/sockets: using fast ZPP. (#14453)
This commit is contained in:
@@ -571,9 +571,14 @@ PHP_FUNCTION(socket_select)
|
||||
zend_long sec, usec = 0;
|
||||
bool sec_is_null = 0;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "a!a!a!l!|l", &r_array, &w_array, &e_array, &sec, &sec_is_null, &usec) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(4, 5)
|
||||
Z_PARAM_ARRAY_EX2(r_array, 1, 1, 0)
|
||||
Z_PARAM_ARRAY_EX2(w_array, 1, 1, 0)
|
||||
Z_PARAM_ARRAY_EX2(e_array, 1, 1, 0)
|
||||
Z_PARAM_LONG_OR_NULL(sec, sec_is_null)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_LONG(usec)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
FD_ZERO(&rfds);
|
||||
FD_ZERO(&wfds);
|
||||
@@ -643,9 +648,11 @@ PHP_FUNCTION(socket_create_listen)
|
||||
php_socket *php_sock;
|
||||
zend_long port, backlog = SOMAXCONN;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "l|l", &port, &backlog) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 2)
|
||||
Z_PARAM_LONG(port)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_LONG(backlog)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
object_init_ex(return_value, socket_ce);
|
||||
php_sock = Z_SOCKET_P(return_value);
|
||||
@@ -668,9 +675,9 @@ PHP_FUNCTION(socket_accept)
|
||||
php_sockaddr_storage sa;
|
||||
socklen_t php_sa_len = sizeof(sa);
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &arg1, socket_ce) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -691,9 +698,9 @@ PHP_FUNCTION(socket_set_nonblock)
|
||||
zval *arg1;
|
||||
php_socket *php_sock;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &arg1, socket_ce) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -727,9 +734,9 @@ PHP_FUNCTION(socket_set_block)
|
||||
zval *arg1;
|
||||
php_socket *php_sock;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &arg1, socket_ce) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -766,9 +773,11 @@ PHP_FUNCTION(socket_listen)
|
||||
php_socket *php_sock;
|
||||
zend_long backlog = 0;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O|l", &arg1, socket_ce, &backlog) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 2)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_LONG(backlog)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -787,9 +796,9 @@ PHP_FUNCTION(socket_close)
|
||||
zval *arg1;
|
||||
php_socket *php_socket;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &arg1, socket_ce) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_socket = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_socket);
|
||||
@@ -826,9 +835,12 @@ PHP_FUNCTION(socket_write)
|
||||
bool length_is_null = 1;
|
||||
char *str;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Os|l!", &arg1, socket_ce, &str, &str_len, &length, &length_is_null) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(2, 3)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
Z_PARAM_STRING(str, str_len)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_LONG_OR_NULL(length, length_is_null)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -866,9 +878,12 @@ PHP_FUNCTION(socket_read)
|
||||
int retval;
|
||||
zend_long length, type = PHP_BINARY_READ;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ol|l", &arg1, socket_ce, &length, &type) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(2, 3)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
Z_PARAM_LONG(length)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_LONG(type)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -927,9 +942,12 @@ PHP_FUNCTION(socket_getsockname)
|
||||
const char *addr_string;
|
||||
socklen_t salen = sizeof(php_sockaddr_storage);
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Oz|z", &arg1, socket_ce, &addr, &port) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(2, 3)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
Z_PARAM_ZVAL(addr)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_ZVAL(port)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -995,9 +1013,12 @@ PHP_FUNCTION(socket_getpeername)
|
||||
const char *addr_string;
|
||||
socklen_t salen = sizeof(php_sockaddr_storage);
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Oz|z", &arg1, socket_ce, &arg2, &arg3) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(2, 3)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
Z_PARAM_ZVAL(arg2)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_ZVAL(arg3)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -1056,9 +1077,11 @@ PHP_FUNCTION(socket_create)
|
||||
zend_long domain, type, protocol;
|
||||
php_socket *php_sock;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "lll", &domain, &type, &protocol) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(3, 3)
|
||||
Z_PARAM_LONG(domain)
|
||||
Z_PARAM_LONG(type)
|
||||
Z_PARAM_LONG(protocol)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
if (domain != AF_UNIX
|
||||
#ifdef HAVE_IPV6
|
||||
@@ -1104,9 +1127,12 @@ PHP_FUNCTION(socket_connect)
|
||||
zend_long port;
|
||||
bool port_is_null = 1;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Os|l!", &resource_socket, socket_ce, &addr, &addr_len, &port, &port_is_null) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(2, 3)
|
||||
Z_PARAM_OBJECT_OF_CLASS(resource_socket, socket_ce)
|
||||
Z_PARAM_STRING(addr, addr_len)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_LONG_OR_NULL(port, port_is_null)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(resource_socket);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -1187,9 +1213,9 @@ PHP_FUNCTION(socket_strerror)
|
||||
{
|
||||
zend_long arg1;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &arg1) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_LONG(arg1)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
RETURN_STRING(sockets_strerror(arg1));
|
||||
}
|
||||
@@ -1207,9 +1233,12 @@ PHP_FUNCTION(socket_bind)
|
||||
zend_long port = 0;
|
||||
zend_long retval = 0;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Os|l", &arg1, socket_ce, &addr, &addr_len, &port) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(2, 3)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
Z_PARAM_STRING(addr, addr_len)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_LONG(port)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -1285,9 +1314,12 @@ PHP_FUNCTION(socket_recv)
|
||||
int retval;
|
||||
zend_long len, flags;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ozll", &php_sock_res, socket_ce, &buf, &len, &flags) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(4, 4)
|
||||
Z_PARAM_OBJECT_OF_CLASS(php_sock_res, socket_ce)
|
||||
Z_PARAM_ZVAL(buf)
|
||||
Z_PARAM_LONG(len)
|
||||
Z_PARAM_LONG(flags)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(php_sock_res);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -1326,9 +1358,12 @@ PHP_FUNCTION(socket_send)
|
||||
zend_long len, flags;
|
||||
char *buf;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Osll", &arg1, socket_ce, &buf, &buf_len, &len, &flags) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(4, 4)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
Z_PARAM_STRING(buf, buf_len)
|
||||
Z_PARAM_LONG(len)
|
||||
Z_PARAM_LONG(flags)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -1366,9 +1401,15 @@ PHP_FUNCTION(socket_recvfrom)
|
||||
const char *address;
|
||||
zend_string *recv_buf;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ozllz|z", &arg1, socket_ce, &arg2, &arg3, &arg4, &arg5, &arg6) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(5, 6)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
Z_PARAM_ZVAL(arg2)
|
||||
Z_PARAM_LONG(arg3)
|
||||
Z_PARAM_LONG(arg4)
|
||||
Z_PARAM_ZVAL(arg5)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_ZVAL(arg6)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -1481,9 +1522,15 @@ PHP_FUNCTION(socket_sendto)
|
||||
bool port_is_null = 1;
|
||||
char *buf, *addr;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Oslls|l!", &arg1, socket_ce, &buf, &buf_len, &len, &flags, &addr, &addr_len, &port, &port_is_null) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(5, 6)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
Z_PARAM_STRING(buf, buf_len)
|
||||
Z_PARAM_LONG(len)
|
||||
Z_PARAM_LONG(flags)
|
||||
Z_PARAM_STRING(addr, addr_len)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_LONG_OR_NULL(port, port_is_null)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -1564,9 +1611,11 @@ PHP_FUNCTION(socket_get_option)
|
||||
int other_val;
|
||||
zend_long level, optname;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Oll", &arg1, socket_ce, &level, &optname) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(3, 3)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
Z_PARAM_LONG(level)
|
||||
Z_PARAM_LONG(optname)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -1772,9 +1821,12 @@ PHP_FUNCTION(socket_set_option)
|
||||
zval *l_onoff, *l_linger;
|
||||
zval *sec, *usec;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ollz", &arg1, socket_ce, &level, &optname, &arg4) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(4, 4)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
Z_PARAM_LONG(level)
|
||||
Z_PARAM_LONG(optname)
|
||||
Z_PARAM_ZVAL(arg4)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -1993,9 +2045,12 @@ PHP_FUNCTION(socket_create_pair)
|
||||
PHP_SOCKET fds_array[2];
|
||||
zend_long domain, type, protocol;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "lllz", &domain, &type, &protocol, &fds_array_zval) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(4, 4)
|
||||
Z_PARAM_LONG(domain)
|
||||
Z_PARAM_LONG(type)
|
||||
Z_PARAM_LONG(protocol)
|
||||
Z_PARAM_ZVAL(fds_array_zval)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
if (domain != AF_INET
|
||||
#ifdef HAVE_IPV6
|
||||
@@ -2058,9 +2113,11 @@ PHP_FUNCTION(socket_shutdown)
|
||||
zend_long how_shutdown = 2;
|
||||
php_socket *php_sock;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O|l", &arg1, socket_ce, &how_shutdown) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 2)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_LONG(how_shutdown)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -2082,9 +2139,9 @@ PHP_FUNCTION(socket_atmark)
|
||||
php_socket *php_sock;
|
||||
int r;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &arg1, socket_ce) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, socket_ce)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
ENSURE_SOCKET_VALID(php_sock);
|
||||
@@ -2107,9 +2164,10 @@ PHP_FUNCTION(socket_last_error)
|
||||
zval *arg1 = NULL;
|
||||
php_socket *php_sock;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|O!", &arg1, socket_ce) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(0, 1)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_OBJECT_OF_CLASS_OR_NULL(arg1, socket_ce)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
if (arg1) {
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
@@ -2128,9 +2186,10 @@ PHP_FUNCTION(socket_clear_error)
|
||||
zval *arg1 = NULL;
|
||||
php_socket *php_sock;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|O!", &arg1, socket_ce) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(0, 1)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_OBJECT_OF_CLASS_OR_NULL(arg1, socket_ce)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
if (arg1) {
|
||||
php_sock = Z_SOCKET_P(arg1);
|
||||
@@ -2194,9 +2253,9 @@ PHP_FUNCTION(socket_import_stream)
|
||||
php_socket *retsock = NULL;
|
||||
PHP_SOCKET socket; /* fd */
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &zstream) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_RESOURCE(zstream)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
php_stream_from_zval(stream, zstream);
|
||||
|
||||
if (php_stream_cast(stream, PHP_STREAM_AS_SOCKETD, (void**)&socket, 1)) {
|
||||
@@ -2241,9 +2300,9 @@ PHP_FUNCTION(socket_export_stream)
|
||||
const char *protocol = NULL;
|
||||
size_t protocollen = 0;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &zsocket, socket_ce) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_OBJECT_OF_CLASS(zsocket, socket_ce)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
socket = Z_SOCKET_P(zsocket);
|
||||
ENSURE_SOCKET_VALID(socket);
|
||||
@@ -2338,9 +2397,12 @@ PHP_FUNCTION(socket_addrinfo_lookup)
|
||||
struct addrinfo hints, *result, *rp;
|
||||
php_addrinfo *res;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S|s!a", &hostname, &service, &service_len, &zhints) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 3)
|
||||
Z_PARAM_STR(hostname)
|
||||
Z_PARAM_OPTIONAL
|
||||
Z_PARAM_STRING_OR_NULL(service, service_len)
|
||||
Z_PARAM_ARRAY(zhints)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
memset(&hints, 0, sizeof(hints));
|
||||
|
||||
@@ -2402,9 +2464,9 @@ PHP_FUNCTION(socket_addrinfo_bind)
|
||||
php_addrinfo *ai;
|
||||
php_socket *php_sock;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &arg1, address_info_ce) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, address_info_ce)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
ai = Z_ADDRESS_INFO_P(arg1);
|
||||
|
||||
@@ -2465,9 +2527,9 @@ PHP_FUNCTION(socket_addrinfo_connect)
|
||||
php_addrinfo *ai;
|
||||
php_socket *php_sock;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &arg1, address_info_ce) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, address_info_ce)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
ai = Z_ADDRESS_INFO_P(arg1);
|
||||
|
||||
@@ -2526,9 +2588,9 @@ PHP_FUNCTION(socket_addrinfo_explain)
|
||||
zval *arg1, sockaddr;
|
||||
php_addrinfo *ai;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &arg1, address_info_ce) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_OBJECT_OF_CLASS(arg1, address_info_ce)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
ai = Z_ADDRESS_INFO_P(arg1);
|
||||
|
||||
@@ -2584,9 +2646,10 @@ PHP_FUNCTION(socket_wsaprotocol_info_export)
|
||||
zend_string *seg_name;
|
||||
HANDLE map;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ol", &zsocket, socket_ce, &target_pid) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(2, 2)
|
||||
Z_PARAM_OBJECT_OF_CLASS(zsocket, socket_ce)
|
||||
Z_PARAM_LONG(target_pid)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
socket = Z_SOCKET_P(zsocket);
|
||||
ENSURE_SOCKET_VALID(socket);
|
||||
@@ -2639,9 +2702,9 @@ PHP_FUNCTION(socket_wsaprotocol_info_import)
|
||||
php_socket *php_sock;
|
||||
HANDLE map;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &id, &id_len) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_STRING(id, id_len)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
map = OpenFileMapping(FILE_MAP_READ, FALSE, id);
|
||||
if (map) {
|
||||
@@ -2693,9 +2756,9 @@ PHP_FUNCTION(socket_wsaprotocol_info_release)
|
||||
char *id;
|
||||
size_t id_len;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &id, &id_len) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
ZEND_PARSE_PARAMETERS_START(1, 1)
|
||||
Z_PARAM_STRING(id, id_len)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
|
||||
RETURN_BOOL(SUCCESS == zend_hash_str_del(&(SOCKETS_G(wsa_info)), id, id_len));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user