--- Begin Message ---
refere include file : sys/utsname.h !
You can see if the macro __USE_GNU is set the char returned are
'domainname' else the char are '__domainname' #@\[@~\
You know this function can do a apache segfault ?!
Becarful cuz domainename doesn't exist on freebsd !
there is the current (PHP-4.2.0RC1) code on : ext/posix/posix.c
/* {{{ proto array posix_uname(void)
Get system name (POSIX.1, 4.4.1) */
PHP_FUNCTION(posix_uname)
{
struct utsname u;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "") == FAILURE)
return;
if (uname(&u) < 0) {
POSIX_G(last_error) = errno;
RETURN_FALSE;
}
if (array_init(return_value) == FAILURE) {
// TODO: Should we issue a warning here so we don't have ambiguity
// with the above return value ?
RETURN_FALSE;
}
add_assoc_string(return_value, "sysname", u.sysname, 1);
add_assoc_string(return_value, "nodename", u.nodename, 1);
add_assoc_string(return_value, "release", u.release, 1);
add_assoc_string(return_value, "version", u.version, 1);
add_assoc_string(return_value, "machine", u.machine, 1);
#ifdef _GNU_SOURCE /* i'm okay */
add_assoc_string(return_value, "domainname", u.domainname, 1); /* <-
{|^@#\|^[#\ */
#endif
}
/* }}} */
/*--------------------------------------------------------Fixed
code--------------------------------------------------*/
/* {{{ proto array posix_uname(void)
Get system name (POSIX.1, 4.4.1) */
PHP_FUNCTION(posix_uname)
{
struct utsname u;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "") == FAILURE)
return;
if (uname(&u) < 0) {
POSIX_G(last_error) = errno;
RETURN_FALSE;
}
if (array_init(return_value) == FAILURE) {
// TODO: Should we issue a warning here so we don't have ambiguity
// with the above return value ?
RETURN_FALSE;
}
add_assoc_string(return_value, "sysname", u.sysname, 1);
add_assoc_string(return_value, "nodename", u.nodename, 1);
add_assoc_string(return_value, "release", u.release, 1);
add_assoc_string(return_value, "version", u.version, 1);
add_assoc_string(return_value, "machine", u.machine, 1);
#ifdef _GNU_SOURCE
#ifdef __USE_GNU
add_assoc_string(return_value, "domainname", u.domainname, 1);
#else
add_assoc_string(return_value, "domainname", u.__domainname, 1);
#endif
#endif
}
/* }}} */
--- End Message ---
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php