diff options
author | Pierre Joye <pajoye@php.net> | 2008-03-05 21:18:26 +0000 |
---|---|---|
committer | Pierre Joye <pajoye@php.net> | 2008-03-05 21:18:26 +0000 |
commit | be4cb471ef9a96d309c0c5079a48edb85024dd98 (patch) | |
tree | d64c616776e6369a9865da6a1453ec427031ba69 | |
parent | b9a3da88392a0aee897c48ca974a33b0a0df1a2c (diff) | |
download | php-git-be4cb471ef9a96d309c0c5079a48edb85024dd98.tar.gz |
- MFB: #40013, php_uname() does not return nodename on Netware
(Guenter Knauf)
-rw-r--r-- | ext/standard/info.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/ext/standard/info.c b/ext/standard/info.c index 0effbe8fd3..ae0c78a6ae 100644 --- a/ext/standard/info.c +++ b/ext/standard/info.c @@ -425,6 +425,30 @@ PHPAPI char *php_get_uname(char mode) if (uname((struct utsname *)&buf) == -1) { php_uname = PHP_UNAME; } else { +#ifdef NETWARE + if (mode == 's') { + php_uname = buf.sysname; + } else if (mode == 'r') { + snprintf(tmp_uname, sizeof(tmp_uname), "%d.%d.%d", + buf.netware_major, buf.netware_minor, buf.netware_revision); + php_uname = tmp_uname; + } else if (mode == 'n') { + php_uname = buf.servername; + } else if (mode == 'v') { + snprintf(tmp_uname, sizeof(tmp_uname), "libc-%d.%d.%d #%d", + buf.libmajor, buf.libminor, buf.librevision, buf.libthreshold); + php_uname = tmp_uname; + } else if (mode == 'm') { + php_uname = buf.machine; + } else { /* assume mode == 'a' */ + snprintf(tmp_uname, sizeof(tmp_uname), "%s %s %d.%d.%d libc-%d.%d.%d #%d %s", + buf.sysname, buf.servername, + buf.netware_major, buf.netware_minor, buf.netware_revision, + buf.libmajor, buf.libminor, buf.librevision, buf.libthreshold, + buf.machine); + php_uname = tmp_uname; + } +#else if (mode == 's') { php_uname = buf.sysname; } else if (mode == 'r') { @@ -441,6 +465,7 @@ PHPAPI char *php_get_uname(char mode) buf.machine); php_uname = tmp_uname; } +#endif /* NETWARE */ } #else php_uname = PHP_UNAME; |