Fixed bug #30995 (snmp extension does not build with net-snmp 5.2).

This commit is contained in:
Ilia Alshanetsky 2004-12-07 00:33:24 +00:00
parent 35540fdee6
commit d0cbaa911f

View File

@ -781,7 +781,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);
@ -793,6 +807,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);