Hi, Weird but true, somehow the attachment was stripped of somewhere. It is below inline between the '=' lines.
--On Tuesday, September 10, 2002 12:04 PM +0200 [EMAIL PROTECTED] wrote: > Hey, > > nothing is attached, can you put it on a website? > > Derick > > > On Tue, 10 Sep 2002, Harrie Hazewinkel wrote: > >> HI, >> >> The attached patch adds an extra configure directive to enable >> compilation of PHP against NET-SNMP 5.0.x versions. >> The current UCD-SNMP support is still there, since those >> version are around still. >> >> if it can be added to CVS would be grate. >> regards, =========================================================================== === diff -ru ../orig-php-4.2.2/ext/snmp/config.m4 ext/snmp/config.m4 --- ../orig-php-4.2.2/ext/snmp/config.m4 Wed Jan 16 23:32:40 2002 +++ ext/snmp/config.m4 Mon Sep 9 17:57:49 2002 @@ -2,8 +2,8 @@ dnl $Id: config.m4,v 1.24 2002/01/16 22:32:40 rasmus Exp $ dnl -PHP_ARG_WITH(snmp,for SNMP support, -[ --with-snmp[=DIR] Include SNMP support.]) +PHP_ARG_WITH(snmp,for SNMP support - old UCD SNNP, +[ --with-snmp[=DIR] Include SNMP support - old UCD SNNP.]) if test "$PHP_SNMP" != "no"; then @@ -61,6 +61,7 @@ AC_CHECK_LIB(kstat, kstat_read, [ PHP_ADD_LIBRARY(kstat,,SNMP_SHARED_LIBADD) ]) + AC_DEFINE(OLD_UCD_SNMP,1,[ ]) AC_DEFINE(HAVE_SNMP,1,[ ]) PHP_ADD_INCLUDE($SNMP_INCDIR) PHP_ADD_LIBRARY_WITH_PATH(snmp, $SNMP_LIBDIR, SNMP_SHARED_LIBADD) @@ -82,3 +83,68 @@ ],[ AC_MSG_RESULT(no) ]) + +PHP_ARG_WITH(net-snmp,for SNMP support - NET SNNP, +[ --with-net-snmp[=DIR] Include SNMP support - NET SNNP.]) + + if test "$PHP_NET_SNMP" != "no"; then + + if test "$PHP_NET_SNMP" = "yes"; then + for i in /usr/include /usr/local/include; do + test -f $i/net-snmp-config.h && SNMP_INCDIR=$i + test -f $i/snmp/net-snmp-config.h && SNMP_INCDIR=$i/snmp + test -f $i/snmp/include/net-snmp/net-snmp-config.h && SNMP_INCDIR=$i/snmp/include + done + for i in /usr /usr/snmp /usr/local /usr/local/snmp; do + test -f $i/lib/libnetsnmp.a -o -f $i/lib/libnetsnmp.$SHLIB_SUFFIX_NAME && SNMP_LIBDIR=$i/lib + done + else + SNMP_INCDIR=$PHP_NET_SNMP/include + test -f $PHP_NET_SNMP/include/net-snmp/net-snmp-config.h && SNMP_INCDIR=$PHP_NET_SNMP/include + test -f $PHP_NET_SNMP/lib/libnetsnmp.a -o -f $PHP_NET_SNMP/lib/libnetsnmp.$SHLIB_SUFFIX_NAME \ + && SNMP_LIBDIR=$PHP_NET_SNMP/lib + fi + + if test -z "$SNMP_INCDIR"; then + AC_MSG_ERROR(net-snmp-config.h not found. Check your SNMP installation.) + elif test -z "$SNMP_LIBDIR"; then + AC_MSG_ERROR(libnetsnmp not found. Check your SNMP installation.) + fi + + old_CPPFLAGS=$CPPFLAGS + CPPFLAGS=-I$SNMP_INCDIR + AC_MSG_CHECKING(for OpenSSL support in SNMP libraries) + AC_EGREP_CPP(yes,[ + #include <net-snmp/net-snmp-config.h> + #if USE_OPENSSL + yes + #endif + ],[ + SNMP_SSL=yes + ],[ + SNMP_SSL=no + ]) + CPPFLAGS=$old_CPPFLAGS + AC_MSG_RESULT($SNMP_SSL) + + if test "$SNMP_SSL" = "yes"; then + if test "$PHP_OPENSSL" != "no"; then + PHP_ADD_LIBRARY(ssl, 1, SNMP_SHARED_LIBADD) + PHP_ADD_LIBRARY(crypto,1, SNMP_SHARED_LIBADD) + else + AC_MSG_ERROR(The NET-SNMP in this system is built with SSL support. + + Add --with-openssl<=DIR> to your configure line.) + fi + fi + + AC_CHECK_LIB(kstat, kstat_read, [ PHP_ADD_LIBRARY(kstat,,SNMP_SHARED_LIBADD) ]) + + AC_DEFINE(HAVE_SNMP,1,[ ]) + PHP_ADD_INCLUDE($SNMP_INCDIR) + PHP_ADD_LIBRARY_WITH_PATH(netsnmp, $SNMP_LIBDIR, SNMP_SHARED_LIBADD) + + PHP_EXTENSION(snmp, $ext_shared) + PHP_SUBST(SNMP_SHARED_LIBADD) + fi + Only in ext/snmp: config.m4-net-snmp Only in ext/snmp: libs.mk Only in ext/snmp: libsnmp.la diff -ru ../orig-php-4.2.2/ext/snmp/snmp.c ext/snmp/snmp.c --- ../orig-php-4.2.2/ext/snmp/snmp.c Fri Mar 1 04:31:01 2002 +++ ext/snmp/snmp.c Mon Sep 9 17:55:57 2002 @@ -56,9 +56,7 @@ #endif #endif -#ifdef HAVE_DEFAULT_STORE_H -#include "default_store.h" -#endif +#ifdef OLD_UCD_SNMP #include "asn1.h" #include "snmp_api.h" #include "snmp_client.h" @@ -67,6 +65,17 @@ #include "parse.h" #include "mib.h" #include "version.h" +#else +#include "net-snmp/net-snmp-config.h" +#include "net-snmp/version.h" +#include "net-snmp/library/asn1.h" +#include "net-snmp/library/snmp_api.h" +#include "net-snmp/library/snmp_client.h" +#include "net-snmp/library/snmp_impl.h" +#include "net-snmp/library/snmp.h" +#include "net-snmp/library/parse.h" +#include "net-snmp/library/mib.h" +#endif /* ucd-snmp 3.3.1 changed the name of a few #defines... They've been changed back to the original ones in 3.5.3! */ #ifndef SNMP_MSG_GET @@ -130,7 +139,11 @@ { php_info_print_table_start(); php_info_print_table_row(2, "UCD-SNMP Support", "enabled"); +#ifdef OLD_UCD_SNMP php_info_print_table_row(2, "UCD-SNMP Version", VersionInfo); +#else + php_info_print_table_row(2, "UCD-SNMP Version", netsnmp_get_version()); +#endif php_info_print_table_end(); } /* }}} */ @@ -256,7 +269,6 @@ session.timeout = timeout; session.authenticator = NULL; - snmp_synch_setup(&session); if ((ss = snmp_open(&session)) == NULL) { php_error(E_WARNING,"Could not open snmp\n"); @@ -315,7 +327,11 @@ } if (st != 11) { +#ifdef OLD_UCD_SNMP sprint_value((struct sbuf *)buf,vars->name, vars->name_length, vars); +#else + snprint_value(buf, sizeof(buf), vars->name, vars->name_length, vars); +#endif } #if 0 Debug("snmp response is: %s\n",buf); @@ -325,7 +341,11 @@ } else if (st == 2) { add_next_index_string(return_value,buf,1); /* Add to returned array */ } else if (st == 3) { +#ifdef OLD_UCD_SNMP sprint_objid((struct sbuf *)buf2, vars->name, vars->name_length); +#else + snprint_objid(buf2, sizeof(buf2), vars->name, vars->name_length); +#endif add_assoc_string(return_value,buf2,buf,1); } if (st >= 2 && st != 11) { @@ -344,7 +364,11 @@ for (count=1, vars = response->variables; vars && count != response->errindex; vars = vars->next_variable, count++); if (vars) { +#ifdef OLD_UCD_SNMP sprint_objid((struct sbuf *)buf,vars->name, vars->name_length); +#else + snprint_objid(buf, sizeof(buf), vars->name, vars->name_length); +#endif } php_error(E_WARNING,"This name does not exist: %s\n",buf); } =========================================================================== =============================== -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php