]> granicus.if.org Git - php/commitdiff
- Merge: fix #40013, php_uname() doesnt return nodename (MFH)
authorPierre Joye <pajoye@php.net>
Fri, 9 Oct 2009 17:15:46 +0000 (17:15 +0000)
committerPierre Joye <pajoye@php.net>
Fri, 9 Oct 2009 17:15:46 +0000 (17:15 +0000)
ext/standard/info.c

index 393d499c1118e1b04144e5dcf69bd8a9f10b3416..dc03a4805ee0838f12dcbbadfb451e7985bf0516 100644 (file)
@@ -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;