summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorColin Viebrock <cmv@php.net>2001-02-02 20:55:27 +0000
committerColin Viebrock <cmv@php.net>2001-02-02 20:55:27 +0000
commit96343bac9027b9cf6b2dd660521539fe7db3af05 (patch)
tree276c376be7eaf802b3fb33827c1039f5d497e0c4 /ext
parent91d91d505256c1f0c4cc5e4e30c350809bf92881 (diff)
downloadphp-git-96343bac9027b9cf6b2dd660521539fe7db3af05.tar.gz
Fix for http://bugs.php.net/bugs.php?id=9082
I know switch() is expensive, so someone rewrite this "properly" if you want.
Diffstat (limited to 'ext')
-rw-r--r--ext/sockets/sockets.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c
index 76203329d3..67ce0eef20 100644
--- a/ext/sockets/sockets.c
+++ b/ext/sockets/sockets.c
@@ -857,10 +857,27 @@ PHP_FUNCTION(getpeername)
int salen = sizeof(php_sockaddr_storage);
int ret;
+ switch (ZEND_NUM_ARGS()) {
+ case 3:
+ if (zend_get_parameters_ex(ZEND_NUM_ARGS(), &fd, &addr, &port) == FAILURE)
+ WRONG_PARAM_COUNT;
+ break;
+ case 2:
+ if (zend_get_parameters_ex(ZEND_NUM_ARGS(), &fd, &addr) == FAILURE)
+ WRONG_PARAM_COUNT;
+ break;
+ MAKE_STD_ZVAL((*port));
+
+ default:
+ WRONG_PARAM_COUNT;
+ }
+
+/*
if (ZEND_NUM_ARGS() < 2 || ZEND_NUM_ARGS() > 3 ||
zend_get_parameters_ex(ZEND_NUM_ARGS(), &fd, &addr, &port) == FAILURE) {
WRONG_PARAM_COUNT;
}
+*/
multi_convert_to_long_ex(ZEND_NUM_ARGS() - 1, fd, port);
convert_to_string_ex(addr);