sniper Thu Jul 27 05:17:35 2006 UTC Modified files: (Branch: PHP_5_2) /php-src NEWS /php-src/ext/snmp php_snmp.h snmp.c Log: MFH: - Fixed bug #37164 (snmp_set_oid_numeric_print() misbehaves) MFH: . Renamed the function to snmp_set_oid_output_format() which describes MFH: it's behaviour better. Old one was left as an alias for it. MFH: . Added 2 new constants: SNMP_OID_OUTPUT_FULL and SNMP_OID_OUTPUT_NUMERIC MFH: - Fixed some memleaks http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.152&r2=1.2027.2.547.2.153&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.152 php-src/NEWS:1.2027.2.547.2.153 --- php-src/NEWS:1.2027.2.547.2.152 Wed Jul 26 23:57:43 2006 +++ php-src/NEWS Thu Jul 27 05:17:34 2006 @@ -9,6 +9,12 @@ . ext/filepro (Derick, Tony) . ext/hwapi (Derick, Tony) +- Improved SNMP extension: (Jani) + . Renamed snmp_set_oid_numeric_print() to snmp_set_oid_output_format(). + . Added 2 new constants: SNMP_OID_OUTPUT_FULL and SNMP_OID_OUTPUT_NUMERIC + . Fixed bug #37564 (AES privacy encryption not possible due to net-snmp 5.2 + compatibility issue). (Patch: scott dot moynes+php at gmail dot com) + - Fixed bug #38220 (Crash on some object operations). (Dmitry) - Fixed bug #38217 (ReflectionClass::newInstanceArgs() tries to allocate too much memory). (Tony) http://cvs.php.net/viewvc.cgi/php-src/ext/snmp/php_snmp.h?r1=1.25.2.1&r2=1.25.2.1.2.1&diff_format=u Index: php-src/ext/snmp/php_snmp.h diff -u php-src/ext/snmp/php_snmp.h:1.25.2.1 php-src/ext/snmp/php_snmp.h:1.25.2.1.2.1 --- php-src/ext/snmp/php_snmp.h:1.25.2.1 Sun Jan 1 12:50:13 2006 +++ php-src/ext/snmp/php_snmp.h Thu Jul 27 05:17:34 2006 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_snmp.h,v 1.25.2.1 2006/01/01 12:50:13 sniper Exp $ */ +/* $Id: php_snmp.h,v 1.25.2.1.2.1 2006/07/27 05:17:34 sniper Exp $ */ #ifndef PHP_SNMP_H #define PHP_SNMP_H @@ -49,7 +49,7 @@ PHP_FUNCTION(snmp_get_quick_print); PHP_FUNCTION(snmp_set_quick_print); PHP_FUNCTION(snmp_set_enum_print); -PHP_FUNCTION(snmp_set_oid_numeric_print); +PHP_FUNCTION(snmp_set_oid_output_format); PHP_FUNCTION(snmpset); PHP_FUNCTION(snmp2_get); http://cvs.php.net/viewvc.cgi/php-src/ext/snmp/snmp.c?r1=1.106.2.2.2.2&r2=1.106.2.2.2.3&diff_format=u Index: php-src/ext/snmp/snmp.c diff -u php-src/ext/snmp/snmp.c:1.106.2.2.2.2 php-src/ext/snmp/snmp.c:1.106.2.2.2.3 --- php-src/ext/snmp/snmp.c:1.106.2.2.2.2 Wed Jul 26 23:57:43 2006 +++ php-src/ext/snmp/snmp.c Thu Jul 27 05:17:34 2006 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: snmp.c,v 1.106.2.2.2.2 2006/07/26 23:57:43 sniper Exp $ */ +/* $Id: snmp.c,v 1.106.2.2.2.3 2006/07/27 05:17:34 sniper Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -124,7 +124,8 @@ PHP_FE(snmp_set_quick_print, NULL) #ifdef HAVE_NET_SNMP PHP_FE(snmp_set_enum_print, NULL) - PHP_FE(snmp_set_oid_numeric_print, NULL) + PHP_FE(snmp_set_oid_output_format, NULL) + PHP_FALIAS(snmp_set_oid_numeric_print, snmp_set_oid_output_format, NULL) #endif PHP_FE(snmpset, NULL) @@ -198,6 +199,11 @@ netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_PERSIST_STATE, 1); #endif +#ifdef HAVE_NET_SNMP + REGISTER_LONG_CONSTANT("SNMP_OID_OUTPUT_FULL", NETSNMP_OID_OUTPUT_FULL, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("SNMP_OID_OUTPUT_NUMERIC", NETSNMP_OID_OUTPUT_NUMERIC, CONST_CS | CONST_PERSISTENT); +#endif + REGISTER_LONG_CONSTANT("SNMP_VALUE_LIBRARY", SNMP_VALUE_LIBRARY, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("SNMP_VALUE_PLAIN", SNMP_VALUE_PLAIN, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("SNMP_VALUE_OBJECT", SNMP_VALUE_OBJECT, CONST_CS | CONST_PERSISTENT); @@ -432,13 +438,13 @@ RETURN_FALSE; } } else if (st >= SNMP_CMD_WALK) { - if (session->version == SNMP_VERSION_1) { + if (session->version == SNMP_VERSION_1) { pdu = snmp_pdu_create(SNMP_MSG_GETNEXT); } else { pdu = snmp_pdu_create(SNMP_MSG_GETBULK); pdu->non_repeaters = 0; pdu->max_repetitions = 20; - } + } snmp_add_null_var(pdu, name, name_length); } @@ -522,6 +528,9 @@ } } snmp_close(ss); + if (st == SNMP_CMD_WALK || st == SNMP_CMD_REALWALK) { + zval_dtor(return_value); + } RETURN_FALSE; } } @@ -731,9 +740,9 @@ } /* }}} */ -/* {{{ proto void snmp_set_oid_numeric_print(int oid_numeric_print) - Return all objects including their respective object id withing the specified one */ -PHP_FUNCTION(snmp_set_oid_numeric_print) +/* {{{ proto void snmp_set_oid_output_format(int oid_format) + Set the OID output format. */ +PHP_FUNCTION(snmp_set_oid_output_format) { int argc = ZEND_NUM_ARGS(); long a1; @@ -741,11 +750,20 @@ if (zend_parse_parameters(argc TSRMLS_CC, "l", &a1) == FAILURE) { return; } - if ((int) a1 != 0) { - netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, - NETSNMP_DS_LIB_OID_OUTPUT_FORMAT, - NETSNMP_OID_OUTPUT_NUMERIC); + + switch ((int) a1) { + case 0: + case NETSNMP_OID_OUTPUT_FULL: + a1 = NETSNMP_OID_OUTPUT_FULL; + break; + + default: + case NETSNMP_OID_OUTPUT_NUMERIC: + a1 = NETSNMP_OID_OUTPUT_NUMERIC; + break; } + + netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_OID_OUTPUT_FORMAT, a1); } /* }}} */ #endif
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php