Hello, I've tried to fix http://bugs.php.net/bug.php?id=49757
As it's my first patch in c, any reviews and suggestions would be very welcome. Greetings, Florian
Index: ext/standard/basic_functions.c =================================================================== --- ext/standard/basic_functions.c (revision 289129) +++ ext/standard/basic_functions.c (working copy) @@ -3932,6 +3932,7 @@ int ip_len; unsigned long n; struct in_addr myaddr; + char str[INET_ADDRSTRLEN]; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &ip, &ip_len) == FAILURE) { return; @@ -3940,7 +3941,14 @@ n = strtoul(ip, NULL, 0); myaddr.s_addr = htonl(n); - RETURN_STRING(inet_ntoa(myaddr), 1); + +#ifdef HAVE_INET_NTOP + inet_ntop(AF_INET, &myaddr, str, INET_ADDRSTRLEN); +#else + str = inet_ntoa(myaddr); +#endif + + RETURN_STRING(str, 1); } /* }}} */ Index: ext/standard/basic_functions.h =================================================================== --- ext/standard/basic_functions.h (revision 289129) +++ ext/standard/basic_functions.h (working copy) @@ -59,6 +59,7 @@ #endif PHP_FUNCTION(ip2long); PHP_FUNCTION(long2ip); +#define INET_ADDRSTRLEN 16 /* system functions */ PHP_FUNCTION(getenv);
Index: ext/standard/basic_functions.c =================================================================== --- ext/standard/basic_functions.c (revision 289129) +++ ext/standard/basic_functions.c (working copy) @@ -3923,6 +3923,7 @@ int ip_len; unsigned long n; struct in_addr myaddr; + char str[INET_ADDRSTRLEN]; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &ip, &ip_len) == FAILURE) { return; @@ -3931,7 +3932,14 @@ n = strtoul(ip, NULL, 0); myaddr.s_addr = htonl(n); - RETURN_RT_STRING(inet_ntoa(myaddr), ZSTR_DUPLICATE); + +#ifdef HAVE_INET_NTOP + inet_ntop(AF_INET, &myaddr, str, INET_ADDRSTRLEN); +#else + str = inet_ntoa(myaddr); +#endif + + RETURN_RT_STRING(str, ZSTR_DUPLICATE); } /* }}} */ Index: ext/standard/basic_functions.h =================================================================== --- ext/standard/basic_functions.h (revision 289129) +++ ext/standard/basic_functions.h (working copy) @@ -59,6 +59,7 @@ #endif PHP_FUNCTION(ip2long); PHP_FUNCTION(long2ip); +#define INET_ADDRSTRLEN 16 /* system functions */ PHP_FUNCTION(getenv);
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php