diff options
| author | Colin Viebrock <cmv@php.net> | 2001-02-02 20:55:27 +0000 |
|---|---|---|
| committer | Colin Viebrock <cmv@php.net> | 2001-02-02 20:55:27 +0000 |
| commit | 96343bac9027b9cf6b2dd660521539fe7db3af05 (patch) | |
| tree | 276c376be7eaf802b3fb33827c1039f5d497e0c4 /ext | |
| parent | 91d91d505256c1f0c4cc5e4e30c350809bf92881 (diff) | |
| download | php-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.c | 17 |
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); |
