summaryrefslogtreecommitdiff
path: root/ext/sockets/sockets.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sockets/sockets.c')
-rw-r--r--ext/sockets/sockets.c44
1 files changed, 20 insertions, 24 deletions
diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c
index 46484e3566..c55f0b91a7 100644
--- a/ext/sockets/sockets.c
+++ b/ext/sockets/sockets.c
@@ -1335,19 +1335,15 @@ PHP_FUNCTION(socket_getsockname)
RETURN_FALSE;
}
- if (port != NULL) {
- ZVAL_DEREF(port);
- }
-
switch (sa->sa_family) {
#if HAVE_IPV6
case AF_INET6:
sin6 = (struct sockaddr_in6 *) sa;
inet_ntop(AF_INET6, &sin6->sin6_addr, addr6, INET6_ADDRSTRLEN);
- ZEND_TRY_ASSIGN_STRING(addr, addr6);
+ ZEND_TRY_ASSIGN_REF_STRING(addr, addr6);
if (port != NULL) {
- ZEND_TRY_ASSIGN_LONG(port, htons(sin6->sin6_port));
+ ZEND_TRY_ASSIGN_REF_LONG(port, htons(sin6->sin6_port));
}
RETURN_TRUE;
break;
@@ -1359,10 +1355,10 @@ PHP_FUNCTION(socket_getsockname)
addr_string = inet_ntoa(sin->sin_addr);
inet_ntoa_lock = 0;
- ZEND_TRY_ASSIGN_STRING(addr, addr_string);
+ ZEND_TRY_ASSIGN_REF_STRING(addr, addr_string);
if (port != NULL) {
- ZEND_TRY_ASSIGN_LONG(port, htons(sin->sin_port));
+ ZEND_TRY_ASSIGN_REF_LONG(port, htons(sin->sin_port));
}
RETURN_TRUE;
break;
@@ -1370,7 +1366,7 @@ PHP_FUNCTION(socket_getsockname)
case AF_UNIX:
s_un = (struct sockaddr_un *) sa;
- ZEND_TRY_ASSIGN_STRING(addr, s_un->sun_path);
+ ZEND_TRY_ASSIGN_REF_STRING(addr, s_un->sun_path);
RETURN_TRUE;
break;
@@ -1419,10 +1415,10 @@ PHP_FUNCTION(socket_getpeername)
sin6 = (struct sockaddr_in6 *) sa;
inet_ntop(AF_INET6, &sin6->sin6_addr, addr6, INET6_ADDRSTRLEN);
- ZEND_TRY_ASSIGN_STRING(arg2, addr6);
+ ZEND_TRY_ASSIGN_REF_STRING(arg2, addr6);
if (arg3 != NULL) {
- ZEND_TRY_ASSIGN_LONG(arg3, htons(sin6->sin6_port));
+ ZEND_TRY_ASSIGN_REF_LONG(arg3, htons(sin6->sin6_port));
}
RETURN_TRUE;
@@ -1435,10 +1431,10 @@ PHP_FUNCTION(socket_getpeername)
addr_string = inet_ntoa(sin->sin_addr);
inet_ntoa_lock = 0;
- ZEND_TRY_ASSIGN_STRING(arg2, addr_string);
+ ZEND_TRY_ASSIGN_REF_STRING(arg2, addr_string);
if (arg3 != NULL) {
- ZEND_TRY_ASSIGN_LONG(arg3, htons(sin->sin_port));
+ ZEND_TRY_ASSIGN_REF_LONG(arg3, htons(sin->sin_port));
}
RETURN_TRUE;
@@ -1447,7 +1443,7 @@ PHP_FUNCTION(socket_getpeername)
case AF_UNIX:
s_un = (struct sockaddr_un *) sa;
- ZEND_TRY_ASSIGN_STRING(arg2, s_un->sun_path);
+ ZEND_TRY_ASSIGN_REF_STRING(arg2, s_un->sun_path);
RETURN_TRUE;
break;
@@ -1718,11 +1714,11 @@ PHP_FUNCTION(socket_recv)
if ((retval = recv(php_sock->bsd_socket, ZSTR_VAL(recv_buf), len, flags)) < 1) {
zend_string_efree(recv_buf);
- ZEND_TRY_ASSIGN_NULL(buf);
+ ZEND_TRY_ASSIGN_REF_NULL(buf);
} else {
ZSTR_LEN(recv_buf) = retval;
ZSTR_VAL(recv_buf)[ZSTR_LEN(recv_buf)] = '\0';
- ZEND_TRY_ASSIGN_NEW_STR(buf, recv_buf);
+ ZEND_TRY_ASSIGN_REF_NEW_STR(buf, recv_buf);
}
if (retval == -1) {
@@ -1817,8 +1813,8 @@ PHP_FUNCTION(socket_recvfrom)
ZSTR_LEN(recv_buf) = retval;
ZSTR_VAL(recv_buf)[ZSTR_LEN(recv_buf)] = '\0';
- ZEND_TRY_ASSIGN_NEW_STR(arg2, recv_buf);
- ZEND_TRY_ASSIGN_STRING(arg5, s_un.sun_path);
+ ZEND_TRY_ASSIGN_REF_NEW_STR(arg2, recv_buf);
+ ZEND_TRY_ASSIGN_REF_STRING(arg5, s_un.sun_path);
break;
case AF_INET:
@@ -1843,9 +1839,9 @@ PHP_FUNCTION(socket_recvfrom)
address = inet_ntoa(sin.sin_addr);
- ZEND_TRY_ASSIGN_NEW_STR(arg2, recv_buf);
- ZEND_TRY_ASSIGN_STRING(arg5, address ? address : "0.0.0.0");
- ZEND_TRY_ASSIGN_LONG(arg6, ntohs(sin.sin_port));
+ ZEND_TRY_ASSIGN_REF_NEW_STR(arg2, recv_buf);
+ ZEND_TRY_ASSIGN_REF_STRING(arg5, address ? address : "0.0.0.0");
+ ZEND_TRY_ASSIGN_REF_LONG(arg6, ntohs(sin.sin_port));
break;
#if HAVE_IPV6
case AF_INET6:
@@ -1871,9 +1867,9 @@ PHP_FUNCTION(socket_recvfrom)
memset(addr6, 0, INET6_ADDRSTRLEN);
inet_ntop(AF_INET6, &sin6.sin6_addr, addr6, INET6_ADDRSTRLEN);
- ZEND_TRY_ASSIGN_NEW_STR(arg2, recv_buf);
- ZEND_TRY_ASSIGN_STRING(arg5, addr6[0] ? addr6 : "::");
- ZEND_TRY_ASSIGN_LONG(arg6, ntohs(sin6.sin6_port));
+ ZEND_TRY_ASSIGN_REF_NEW_STR(arg2, recv_buf);
+ ZEND_TRY_ASSIGN_REF_STRING(arg5, addr6[0] ? addr6 : "::");
+ ZEND_TRY_ASSIGN_REF_LONG(arg6, ntohs(sin6.sin6_port));
break;
#endif
default: