]> granicus.if.org Git - php/commitdiff
MFh: Fixed bug #30995 (snmp extension does not build with net-snmp 5.2).
authorIlia Alshanetsky <iliaa@php.net>
Tue, 7 Dec 2004 00:34:33 +0000 (00:34 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Tue, 7 Dec 2004 00:34:33 +0000 (00:34 +0000)
NEWS
ext/snmp/snmp.c

diff --git a/NEWS b/NEWS
index a55590a1d02abc73772d7dea2991c6c9cdc08c07..5af1bb8871a0abdf5f804bd4f25ac6e680645ea5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,8 @@
 PHP 4                                                                      NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? Nov 2004, Version 4.3.10
-- Fixed bug #30990 (allow popen() on *NIX to accept 'b' flag).
+- Fixed bug #30995 (snmp extension does not build with net-snmp 5.2). (Ilia)
+- Fixed bug #30990 (allow popen() on *NIX to accept 'b' flag). (Ilia)
 
 23 Nov 2004, Version 4.3.10RC1
 - Added the %F modifier to *printf to render a non-locale-aware representation
index 178f1894963bb9287637f6c99f6428c2043fcc0c..2bc437ba78374847d5342054dbae39f4c973ec81 100644 (file)
@@ -769,7 +769,21 @@ static int netsnmp_session_set_sec_protocol(struct snmp_session *s, char *prot T
                        s->securityPrivProtoLen = OIDSIZE(usmDESPrivProtocol);
                        return (0);
 #ifdef HAVE_AES
-               } else if (!strcasecmp(prot, "AES128")) {
+               } else if (!strcasecmp(prot, "AES128")
+#ifdef SNMP_VALIDATE_ERR
+/* 
+* In Net-SNMP before 5.2, the following symbols exist:
+* usmAES128PrivProtocol, usmAES192PrivProtocol, usmAES256PrivProtocol
+* In an effort to be more standards-compliant, 5.2 removed the last two.
+* As of 5.2, the symbols are:
+* usmAESPrivProtocol, usmAES128PrivProtocol
+* 
+* As we want this extension to compile on both versions, we use the latter
+* symbol on purpose, as it's defined to be the same as the former.
+*/
+                       || !strcasecmp(prot, "AES")) {
+#else                  
+               ) {
                        s->securityPrivProto = usmAES128PrivProtocol;
                        s->securityPrivProtoLen = OIDSIZE(usmAES128PrivProtocol);
                        return (0);
@@ -781,6 +795,7 @@ static int netsnmp_session_set_sec_protocol(struct snmp_session *s, char *prot T
                        s->securityPrivProto = usmAES256PrivProtocol;
                        s->securityPrivProtoLen = OIDSIZE(usmAES256PrivProtocol);
                        return (0);
+#endif
 #endif
                } else if (strlen(prot)) {
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid privacy protocol: %s", prot);