lytboris Tue, 05 Apr 2011 12:20:35 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=309971
Log: * added detection and walkaround for net-snmp library bug (net-snmp BUGid 2027834) * drop UCD-SNMP support, R.I.P. Changed paths: U php/php-src/trunk/UPGRADING U php/php-src/trunk/ext/snmp/CREDITS U php/php-src/trunk/ext/snmp/config.m4 U php/php-src/trunk/ext/snmp/config.w32 U php/php-src/trunk/ext/snmp/php_snmp.h U php/php-src/trunk/ext/snmp/snmp.c
Modified: php/php-src/trunk/UPGRADING =================================================================== --- php/php-src/trunk/UPGRADING 2011-04-05 10:47:25 UTC (rev 309970) +++ php/php-src/trunk/UPGRADING 2011-04-05 12:20:35 UTC (rev 309971) @@ -276,6 +276,8 @@ - New constants added for use in snmp_set_oid_output_format() function. - Added feature-rich OO API (SNMP class) + - Dropped UCD-SNMP compatibility code. Consider upgrading to + net-snmp v5.3+. Net-SNMP v5.4+ is required for Windows version. d. no longer possible to disable Modified: php/php-src/trunk/ext/snmp/CREDITS =================================================================== --- php/php-src/trunk/ext/snmp/CREDITS 2011-04-05 10:47:25 UTC (rev 309970) +++ php/php-src/trunk/ext/snmp/CREDITS 2011-04-05 12:20:35 UTC (rev 309971) @@ -1,2 +1,2 @@ SNMP -Rasmus Lerdorf, Harrie Hazewinkel, Mike Jackson, Steven Lawrance, Johann Hanne +Rasmus Lerdorf, Harrie Hazewinkel, Mike Jackson, Steven Lawrance, Johann Hanne, Boris Lytochkin Modified: php/php-src/trunk/ext/snmp/config.m4 =================================================================== --- php/php-src/trunk/ext/snmp/config.m4 2011-04-05 10:47:25 UTC (rev 309970) +++ php/php-src/trunk/ext/snmp/config.m4 2011-04-05 12:20:35 UTC (rev 309971) @@ -8,14 +8,8 @@ PHP_ARG_WITH(openssl-dir,OpenSSL dir for SNMP, [ --with-openssl-dir[=DIR] SNMP: openssl install prefix], no, no) -PHP_ARG_ENABLE(ucd-snmp-hack, whether to enable UCD SNMP hack, -[ --enable-ucd-snmp-hack SNMP: Enable UCD SNMP hack], no, no) - if test "$PHP_SNMP" != "no"; then - dnl - dnl Try net-snmp first - dnl if test "$PHP_SNMP" = "yes"; then AC_PATH_PROG(SNMP_CONFIG,net-snmp-config,,[/usr/local/bin:$PATH]) else @@ -30,78 +24,12 @@ if test -n "$SNMP_LIBS" && test -n "$SNMP_PREFIX"; then PHP_ADD_INCLUDE(${SNMP_PREFIX}/include) PHP_EVAL_LIBLINE($SNMP_LIBS, SNMP_SHARED_LIBADD) - AC_DEFINE(HAVE_NET_SNMP,1,[ ]) SNMP_LIBNAME=netsnmp else AC_MSG_ERROR([Could not find the required paths. Please check your net-snmp installation.]) fi else - - dnl - dnl Try ucd-snmp if net-snmp test failed - dnl - - if test "$PHP_SNMP" = "yes"; then - for i in /usr/include /usr/local/include; do - test -f $i/snmp.h && SNMP_INCDIR=$i - test -f $i/ucd-snmp/snmp.h && SNMP_INCDIR=$i/ucd-snmp - test -f $i/snmp/snmp.h && SNMP_INCDIR=$i/snmp - test -f $i/snmp/include/ucd-snmp/snmp.h && SNMP_INCDIR=$i/snmp/include/ucd-snmp - done - for i in /usr/$PHP_LIBDIR /usr/snmp/lib /usr/local/$PHP_LIBDIR /usr/local/lib /usr/local/snmp/lib; do - test -f $i/libsnmp.a || test -f $i/libsnmp.$SHLIB_SUFFIX_NAME && SNMP_LIBDIR=$i - done - else - SNMP_INCDIR=$PHP_SNMP/include - test -d $PHP_SNMP/include/ucd-snmp && SNMP_INCDIR=$PHP_SNMP/include/ucd-snmp - SNMP_LIBDIR=$PHP_SNMP/lib - fi - - if test -z "$SNMP_INCDIR"; then - AC_MSG_ERROR(snmp.h not found. Check your SNMP installation.) - elif test -z "$SNMP_LIBDIR"; then - AC_MSG_ERROR(libsnmp not found. Check your SNMP installation.) - fi - - old_CPPFLAGS=$CPPFLAGS - CPPFLAGS=-I$SNMP_INCDIR - AC_CHECK_HEADERS(default_store.h) - if test "$ac_cv_header_default_store_h" = "yes"; then - AC_MSG_CHECKING(for OpenSSL support in SNMP libraries) - AC_EGREP_CPP(yes,[ -#include <ucd-snmp-config.h> -#if USE_OPENSSL - yes -#endif - ],[ - SNMP_SSL=yes - ],[ - SNMP_SSL=no - ]) - fi - CPPFLAGS=$old_CPPFLAGS - AC_MSG_RESULT($SNMP_SSL) - - if test "$SNMP_SSL" = "yes"; then - if test "$PHP_OPENSSL_DIR" != "no"; then - PHP_OPENSSL=$PHP_OPENSSL_DIR - fi - - if test "$PHP_OPENSSL" = "no"; then - AC_MSG_ERROR([The UCD-SNMP in this system is built with SSL support. - - Add --with-openssl-dir=DIR to your configure line.]) - else - PHP_SETUP_OPENSSL(SNMP_SHARED_LIBADD, [], [ - AC_MSG_ERROR([SNMP: OpenSSL check failed. Please check config.log for more information.]) - ]) - fi - fi - - AC_CHECK_LIB(kstat, kstat_read, [ PHP_ADD_LIBRARY(kstat,,SNMP_SHARED_LIBADD) ]) - PHP_ADD_INCLUDE($SNMP_INCDIR) - PHP_ADD_LIBRARY_WITH_PATH(snmp, $SNMP_LIBDIR, SNMP_SHARED_LIBADD) - SNMP_LIBNAME=snmp + AC_MSG_ERROR([Could not find net-snmp-config binary. Please check your net-snmp installation.]) fi dnl Check whether snmp_parse_oid() exists. @@ -130,10 +58,68 @@ $SNMP_SHARED_LIBADD ]) - if test "$PHP_UCD_SNMP_HACK" = "yes" ; then - AC_DEFINE(UCD_SNMP_HACK, 1, [ ]) + dnl Check for buggy snmp_snprint_value() (net-snmp BUGid 2027834) + AC_CACHE_CHECK([for buggy snmp_snprint_value], ac_cv_buggy_snprint_value,[ + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -I${SNMP_PREFIX}/include" + AC_TRY_RUN( [ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <net-snmp/net-snmp-config.h> +#include <net-snmp/net-snmp-includes.h> + +u_char uname[] = "Linux nex1.php.net 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:53:09 EST 2011 i686"; + +int main(int argc, char **argv) +{ + int result = 0; + struct variable_list vars; + char buf1[2048]; + char buf2[sizeof(buf1)]; + + memset(&(buf1[0]), 0, sizeof(buf1)); + memset(&(buf2[0]), 0, sizeof(buf2)); + memset(&vars, 0, sizeof(vars)); + vars.type = 4; + vars.val.integer = (long *)&(uname[0]); + vars.val.string = &(uname[0]); + vars.val.bitstring = &(uname[0]); + vars.val.counter64 = (struct counter64 *)&(uname[0]); + vars.val.floatVal = (float *)&(uname[0]); + vars.val_len = sizeof(uname), + vars.name_loc[0] = 1; + vars.name_loc[1] = 3; + vars.name_loc[2] = 6; + vars.name_loc[3] = 1; + vars.name_loc[4] = 2; + vars.name_loc[5] = 1; + vars.name_loc[6] = 1; + vars.name_loc[7] = 1; + vars.name = (oid *)&(vars.name_loc); + vars.name_length = 9; + + init_snmp("snmpapp"); + + netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT, 0); + + snprint_value(buf1, (sizeof(uname) + 32), vars.name, vars.name_length, &vars); + snprint_value(buf2, sizeof(buf2), vars.name, vars.name_length, &vars); + exit((strncmp(buf1, buf2, sizeof(buf1)) != 0)); +} + ],[ + ac_cv_buggy_snprint_value=no + ],[ + ac_cv_buggy_snprint_value=yes + ],[ + ac_cv_buggy_snprint_value=no + ]) + CFLAGS="$save_CFLAGS" + ]) + if test "ac_cv_buggy_snprint_value" = "yes"; then + AC_DEFINE(BUGGY_SNMPRINT_VALUE, 1, [ ]) fi - + PHP_NEW_EXTENSION(snmp, snmp.c, $ext_shared) PHP_SUBST(SNMP_SHARED_LIBADD) fi Modified: php/php-src/trunk/ext/snmp/config.w32 =================================================================== --- php/php-src/trunk/ext/snmp/config.w32 2011-04-05 10:47:25 UTC (rev 309970) +++ php/php-src/trunk/ext/snmp/config.w32 2011-04-05 12:20:35 UTC (rev 309971) @@ -10,9 +10,6 @@ CHECK_LIB("libeay32.lib", "snmp", PHP_SNMP) AC_DEFINE('HAVE_SNMP', 1); AC_DEFINE("HAVE_NET_SNMP", 1); - } else if (CHECK_LIB("libsnmp.lib", "snmp", PHP_SNMP)) { - EXTENSION('snmp', 'snmp.c'); - AC_DEFINE('HAVE_SNMP', 1); } else { WARNING("snmp not enabled; libraries and headers not found"); } Modified: php/php-src/trunk/ext/snmp/php_snmp.h =================================================================== --- php/php-src/trunk/ext/snmp/php_snmp.h 2011-04-05 10:47:25 UTC (rev 309970) +++ php/php-src/trunk/ext/snmp/php_snmp.h 2011-04-05 12:20:35 UTC (rev 309971) @@ -88,10 +88,8 @@ int max_oids; int valueretrieval; int quick_print; -#ifdef HAVE_NET_SNMP int enum_print; int oid_output_format; -#endif int snmp_errno; char snmp_errstr[128]; } php_snmp_object; Modified: php/php-src/trunk/ext/snmp/snmp.c =================================================================== --- php/php-src/trunk/ext/snmp/snmp.c 2011-04-05 10:47:25 UTC (rev 309970) +++ php/php-src/trunk/ext/snmp/snmp.c 2011-04-05 12:20:35 UTC (rev 309971) @@ -72,43 +72,14 @@ #endif #endif -#ifdef HAVE_NET_SNMP #include <net-snmp/net-snmp-config.h> #include <net-snmp/net-snmp-includes.h> -#else -#ifdef HAVE_DEFAULT_STORE_H -#include "default_store.h" -#endif -#include "asn1.h" -#include "snmp_api.h" -#include "snmp_client.h" -#include "snmp_impl.h" -#include "snmp.h" -#include "snmpv3.h" -#include "keytools.h" -#include "parse.h" -#include "mib.h" -#ifndef PHP_WIN32 -/* this doesn't appear to be needed under win32 (perhaps at all) - * and the header file is not present in my UCD-SNMP headers */ -# include "version.h" -#endif -#include "transform_oids.h" -#endif + /* Ugly macro, since the length of OIDs in UCD-SNMP and NET-SNMP * is different and this way the code is not full of 'ifdef's. */ #define OIDSIZE(p) (sizeof(p)/sizeof(oid)) -/* Another ugly macros, since UCD-SNMP has no snprint_* */ -#ifdef HAVE_NET_SNMP -#define SNMP_SNPRINT_OBJID(dst, dstlen, src, srclen) (snprint_objid((dst), (dstlen), (src), (srclen))) -#define SNMP_SNPRINT_VALUE(dst, dstlen, srcname, srcnamelen, src) (snprint_value((dst), (dstlen), (srcname), (srcnamelen), (src))) -#else -#define SNMP_SNPRINT_OBJID(dst, dstlen, src, srclen) (sprint_objid((dst), (src), (srclen))) -#define SNMP_SNPRINT_VALUE(dst, dstlen, srcname, srcnamelen, src) (sprint_value((dst), (srcname), (srcnamelen), (src))) -#endif - #if PHP_VERSION_ID < 50300 #define Z_ADDREF_P(pz) pz->refcount++ #define Z_ISREF_PP(oid) (PZVAL_IS_REF(*(oid))) @@ -231,7 +202,6 @@ ZEND_ARG_INFO(0, quick_print) ZEND_END_ARG_INFO() -#ifdef HAVE_NET_SNMP ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_set_enum_print, 0, 0, 1) ZEND_ARG_INFO(0, enum_print) ZEND_END_ARG_INFO() @@ -239,7 +209,6 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_set_oid_output_format, 0, 0, 1) ZEND_ARG_INFO(0, oid_format) ZEND_END_ARG_INFO() -#endif ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp2_get, 0, 0, 3) ZEND_ARG_INFO(0, host) @@ -429,11 +398,9 @@ PHP_FE(snmpset, arginfo_snmpset) PHP_FE(snmp_get_quick_print, arginfo_snmp_get_quick_print) PHP_FE(snmp_set_quick_print, arginfo_snmp_set_quick_print) -#ifdef HAVE_NET_SNMP PHP_FE(snmp_set_enum_print, arginfo_snmp_set_enum_print) PHP_FE(snmp_set_oid_output_format, arginfo_snmp_set_oid_output_format) PHP_FALIAS(snmp_set_oid_numeric_print, snmp_set_oid_output_format, arginfo_snmp_set_oid_output_format) -#endif PHP_FE(snmp2_get, arginfo_snmp2_get) PHP_FE(snmp2_getnext, arginfo_snmp2_getnext) @@ -578,7 +545,11 @@ static void php_snmp_getvalue(struct variable_list *vars, zval *snmpval TSRMLS_DC, int valueretrieval) { zval *val; +#ifdef BUGGY_SNMPRINT_VALUE + char sbuf[2048]; +#else char sbuf[64]; +#endif char *buf = &(sbuf[0]); char *dbuf = (char *)NULL; int buflen = sizeof(sbuf) - 1; @@ -601,7 +572,7 @@ *buf = 0; if (valueretrieval == SNMP_VALUE_LIBRARY) { - SNMP_SNPRINT_VALUE(buf, buflen, vars->name, vars->name_length, vars); + snprint_value(buf, buflen, vars->name, vars->name_length, vars); ZVAL_STRING(snmpval, buf, 1); if(dbuf){ /* malloc was used to store value */ efree(dbuf); @@ -626,7 +597,7 @@ break; case ASN_OBJECT_ID: /* 0x06, asn1.h */ - SNMP_SNPRINT_OBJID(buf, buflen, vars->val.objid, vars->val_len / sizeof(oid)); + snprint_objid(buf, buflen, vars->val.objid, vars->val_len / sizeof(oid)); ZVAL_STRING(val, buf, 1); break; @@ -795,7 +766,7 @@ return; } else { if ((snmp_errno = snmp_add_var(pdu, name, name_length, objid_query->vars[objid_query->offset].type, objid_query->vars[objid_query->offset].value))) { - SNMP_SNPRINT_OBJID(buf, sizeof(buf), name, name_length); + snprint_objid(buf, sizeof(buf), name, name_length); php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not add variable: OID='%s' type='%c' value='%s': %s", buf, objid_query->vars[objid_query->offset].type, objid_query->vars[objid_query->offset].value, snmp_api_errstring(snmp_errno)); snmp_free_pdu(pdu); snmp_close(ss); @@ -833,8 +804,8 @@ if ((st & SNMP_CMD_WALK) && Z_TYPE_P(return_value) == IS_ARRAY) { break; } - SNMP_SNPRINT_OBJID(buf, sizeof(buf), vars->name, vars->name_length); - SNMP_SNPRINT_VALUE(buf2, sizeof(buf2), vars->name, vars->name_length, vars); + snprint_objid(buf, sizeof(buf), vars->name, vars->name_length); + snprint_value(buf2, sizeof(buf2), vars->name, vars->name_length, vars); php_snmp_error(getThis(), NULL TSRMLS_CC, PHP_SNMP_ERRNO_ERROR_IN_REPLY, "Error in packet at '%s': %s", buf, buf2); continue; } @@ -863,7 +834,7 @@ if (st & SNMP_NUMERIC_KEYS) { add_next_index_zval(return_value, snmpval); } else { - SNMP_SNPRINT_OBJID(buf2, sizeof(buf2), vars->name, vars->name_length); + snprint_objid(buf2, sizeof(buf2), vars->name, vars->name_length); add_assoc_zval(return_value, buf2, snmpval); } } else { @@ -902,7 +873,7 @@ continue; } if (vars) { - SNMP_SNPRINT_OBJID(buf, sizeof(buf), vars->name, vars->name_length); + snprint_objid(buf, sizeof(buf), vars->name, vars->name_length); php_snmp_error(getThis(), NULL TSRMLS_CC, PHP_SNMP_ERRNO_ERROR_IN_REPLY, "Error in packet at '%s': %s", buf, snmp_errstring(response->errstat)); } else { php_snmp_error(getThis(), NULL TSRMLS_CC, PHP_SNMP_ERRNO_ERROR_IN_REPLY, "Error in packet at %u object_id: %s", response->errindex, snmp_errstring(response->errstat)); @@ -1442,17 +1413,12 @@ } } objid_query.valueretrieval = snmp_object->valueretrieval; -#ifdef HAVE_NET_SNMP glob_snmp_object.enum_print = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM); netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM, snmp_object->enum_print); glob_snmp_object.quick_print = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT); netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT, snmp_object->quick_print); glob_snmp_object.oid_output_format = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_OID_OUTPUT_FORMAT); netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_OID_OUTPUT_FORMAT, snmp_object->oid_output_format); -#else - glob_snmp_object.quick_print = snmp_get_quick_print(); - snmp_set_quick_print(snmp_object->quick_print); -#endif } if (objid_query.max_repetitions < 0) { @@ -1466,13 +1432,9 @@ if (session_less_mode) { netsnmp_session_free(&session); } else { -#ifdef HAVE_NET_SNMP netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM, glob_snmp_object.enum_print); netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT, glob_snmp_object.quick_print); netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_OID_OUTPUT_FORMAT, glob_snmp_object.oid_output_format); -#else - snmp_set_quick_print(glob_snmp_object.quick_print); -#endif } } /* }}} */ @@ -1525,11 +1487,7 @@ return; } -#ifdef HAVE_NET_SNMP RETURN_BOOL(netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)); -#else - RETURN_BOOL(snmp_get_quick_print()); -#endif } /* }}} */ @@ -1543,16 +1501,11 @@ RETURN_FALSE; } -#ifdef HAVE_NET_SNMP netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT, (int)a1); -#else - snmp_set_quick_print((int)a1); -#endif RETURN_TRUE; } /* }}} */ -#ifdef HAVE_NET_SNMP /* {{{ proto bool snmp_set_enum_print(int enum_print) Return all values that are enums with their enum value instead of the raw integer */ PHP_FUNCTION(snmp_set_enum_print) @@ -1595,7 +1548,6 @@ } } /* }}} */ -#endif /* {{{ proto mixed snmp2_get(string host, string community, mixed object_id [, int timeout [, int retries]]) Fetch a SNMP object */ @@ -1787,13 +1739,9 @@ } snmp_object->max_oids = 0; snmp_object->valueretrieval = SNMP_G(valueretrieval); -#ifdef HAVE_NET_SNMP snmp_object->enum_print = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM); snmp_object->oid_output_format = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_OID_OUTPUT_FORMAT); snmp_object->quick_print = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT); -#else - snmp_object->quick_print = snmp_get_quick_print(); -#endif } /* }}} */ @@ -2165,7 +2113,6 @@ } /* }}} */ -#ifdef HAVE_NET_SNMP /* {{{ */ static int php_snmp_read_enum_print(php_snmp_object *snmp_object, zval **retval TSRMLS_DC) { @@ -2183,7 +2130,6 @@ return SUCCESS; } /* }}} */ -#endif /* {{{ */ static int php_snmp_write_info(php_snmp_object *snmp_object, zval *newval TSRMLS_DC) @@ -2278,7 +2224,6 @@ } /* }}} */ -#ifdef HAVE_NET_SNMP /* {{{ */ static int php_snmp_write_enum_print(php_snmp_object *snmp_object, zval *newval TSRMLS_DC) { @@ -2331,7 +2276,6 @@ } return ret; } -#endif /* }}} */ /* {{{ php_snmp_class_methods[] */ @@ -2359,10 +2303,8 @@ PHP_SNMP_PROPERTY_ENTRY_RECORD(max_oids), PHP_SNMP_PROPERTY_ENTRY_RECORD(valueretrieval), PHP_SNMP_PROPERTY_ENTRY_RECORD(quick_print), -#ifdef HAVE_NET_SNMP PHP_SNMP_PROPERTY_ENTRY_RECORD(enum_print), PHP_SNMP_PROPERTY_ENTRY_RECORD(oid_output_format), -#endif { NULL, 0, NULL, NULL} }; /* }}} */ @@ -2406,14 +2348,12 @@ zend_hash_init(&php_snmp_properties, 0, NULL, NULL, 1); PHP_SNMP_ADD_PROPERTIES(&php_snmp_properties, php_snmp_property_entries); -#ifdef HAVE_NET_SNMP REGISTER_LONG_CONSTANT("SNMP_OID_OUTPUT_SUFFIX", NETSNMP_OID_OUTPUT_SUFFIX, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("SNMP_OID_OUTPUT_MODULE", NETSNMP_OID_OUTPUT_MODULE, CONST_CS | CONST_PERSISTENT); 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); REGISTER_LONG_CONSTANT("SNMP_OID_OUTPUT_UCD", NETSNMP_OID_OUTPUT_UCD, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("SNMP_OID_OUTPUT_NONE", NETSNMP_OID_OUTPUT_NONE, 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); @@ -2464,13 +2404,8 @@ PHP_MINFO_FUNCTION(snmp) { php_info_print_table_start(); -#ifdef HAVE_NET_SNMP php_info_print_table_row(2, "NET-SNMP Support", "enabled"); php_info_print_table_row(2, "NET-SNMP Version", netsnmp_get_version()); -#else - php_info_print_table_row(2, "UCD-SNMP Support", "enabled"); - php_info_print_table_row(2, "UCD-SNMP Version", VersionInfo); -#endif php_info_print_table_row(2, "PHP SNMP Version", PHP_SNMP_VERSION); php_info_print_table_end(); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php