summaryrefslogtreecommitdiff
path: root/ext/standard/info.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/info.c')
-rw-r--r--ext/standard/info.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/ext/standard/info.c b/ext/standard/info.c
index 29b1455ca..fd5eeacfd 100644
--- a/ext/standard/info.c
+++ b/ext/standard/info.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: info.c,v 1.249.2.10.2.14.2.23 2009/01/17 02:05:13 stas Exp $ */
+/* $Id: info.c 289430 2009-10-09 17:15:46Z pajoye $ */
#include "php.h"
#include "php_ini.h"
@@ -527,6 +527,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') {
@@ -543,6 +567,7 @@ PHPAPI char *php_get_uname(char mode)
buf.machine);
php_uname = tmp_uname;
}
+#endif /* NETWARE */
}
#else
php_uname = PHP_UNAME;