]> granicus.if.org Git - php/commitdiff
- #40013, php_uname() does not return nodename on Netware (Guenter Knauf)
authorPierre Joye <pajoye@php.net>
Wed, 5 Mar 2008 21:09:29 +0000 (21:09 +0000)
committerPierre Joye <pajoye@php.net>
Wed, 5 Mar 2008 21:09:29 +0000 (21:09 +0000)
NEWS
ext/standard/info.c

diff --git a/NEWS b/NEWS
index c739557977dcecd344427028760062ea4a722666..6edb2a0d34ae438e6d831dde4ed88059eb105292 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,8 @@ PHP                                                                        NEWS
   (Ilia)
 - Fixed bug #42505 (new sendmail default breaks on Netware platform) 
   (Guenter Knauf)
+- Fixed bug #40013 (php_uname() does not return nodename on Netware
+  (Guenter Knauf)
 
 27 Feb 2008, PHP 5.2.6RC1
 - Fixed security issue detailed in CVE-2008-0599. (Rasmus)
index cf182d8a1c457f908dcb9d0f654de3041019adc0..0c3118a78b5fe4ba79874d1b14c7fafcc77f5798 100644 (file)
@@ -326,6 +326,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') {
@@ -342,6 +366,7 @@ PHPAPI char *php_get_uname(char mode)
                                         buf.machine);
                        php_uname = tmp_uname;
                }
+#endif /* NETWARE */
        }
 #else
        php_uname = PHP_UNAME;