+++ /dev/null
---- 0.8.7e/ping.c 2009-06-28 21:45:02.000000000 -0400
-+++ ../branches/0.8.7/ping.c 2009-08-18 20:51:30.000000000 -0400
-@@ -890,7 +890,7 @@
- return(cleaned_hostname);
- }
-
--/*! \fn unsigned short get_checksum(void* buf, int len)
-+/*! \fn unsigned short int get_checksum(void* buf, int len)
- * \brief calculates a 16bit checksum of a packet buffer
- * \param buf the input buffer to calculate the checksum of
- * \param len the size of the input buffer
-@@ -898,11 +898,12 @@
- * \return 16bit checksum of an input buffer of size len.
- *
- */
--unsigned short get_checksum(void* buf, int len) {
-+unsigned short int get_checksum(void* buf, int len) {
- int nleft = len;
- int32_t sum = 0;
-- unsigned short answer;
-- unsigned short* w = (unsigned short*)buf;
-+ unsigned short int answer;
-+ unsigned short int* w = (unsigned short int*)buf;
-+ unsigned short int odd_byte = 0;
-
- while (nleft > 1) {
- sum += *w++;
-@@ -910,7 +911,8 @@
- }
-
- if (nleft == 1) {
-- sum += *(unsigned char*)w;
-+ *(unsigned char*)(&odd_byte) = *(unsigned char*)w;
-+ sum += odd_byte;
- }
-
- sum = (sum >> 16) + (sum & 0xffff);
---- 0.8.7e/ping.h 2009-06-28 21:45:02.000000000 -0400
-+++ ../branches/0.8.7/ping.h 2009-08-18 20:51:30.000000000 -0400
-@@ -142,4 +142,4 @@
- extern char *remove_tcp_udp_from_hostname(char *hostname);
- extern void update_host_status(int status, host_t *host, ping_t *ping, int availability_method);
- extern int init_sockaddr(struct sockaddr_in *name, const char *hostname, unsigned short int port);
--extern unsigned short get_checksum(void* buf, int len);
-+extern unsigned short int get_checksum(void* buf, int len);
+++ /dev/null
---- 0.8.7e/configure.ac 2009-06-28 21:45:02.000000000 -0400
-+++ ../branches/0.8.7/configure.ac 2009-08-18 20:51:30.000000000 -0400
-@@ -351,6 +351,21 @@
- AC_MSG_RESULT([no])
- fi
-
-+# ****************** Force Net-SNMP Version Checks ***********************
-+# If we should use the system popen or nifty popen
-+AC_MSG_CHECKING(whether to verify net-snmp library vs header versions)
-+AC_ARG_ENABLE(strict-snmp,
-+ [ --enable-strict-snmp Enable checking of Net-SNMP library vs header versions (default: disabled)],
-+ [ ENABLED_SNMP_VERSION=$enableval ],
-+ [ ENABLED_SNMP_VERSION=no ]
-+ )
-+if test "$ENABLED_SNMP_VERSION" = "yes"; then
-+ AC_MSG_RESULT([yes])
-+ AC_DEFINE(VERIFY_PACKAGE_VERSION, 1, If we are going to force Net-SNMP library and header versons to be the same)
-+else
-+ AC_MSG_RESULT([no])
-+fi
-+
- # ****************** gethostbyname_r Check ***********************
- # Linux Variant
- AC_MSG_CHECKING([for glibc gethostbyname_r])
---- 0.8.7e/snmp.c 2009-06-28 21:45:02.000000000 -0400
-+++ ../branches/0.8.7/snmp.c 2009-08-18 20:51:30.000000000 -0400
-@@ -91,7 +91,7 @@
- netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_BARE_VALUE, 1);
- netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS, 1);
-
-- #ifdef PACKAGE_VERSION
-+ #if defined(VERIFY_PACKAGE_VERSION) && defined(PACKAGE_VERSION)
- /* check that the headers we compiled with match the library we linked with -
- apparently not defined in UCD-SNMP...
- */
-@@ -215,24 +215,22 @@
- session.securityName = snmp_username;
- session.securityNameLen = strlen(session.securityName);
-
-+ if (snmp_context && strlen(snmp_context)) {
- session.contextName = snmp_context;
- session.contextNameLen = strlen(session.contextName);
-+ }
-
- session.securityAuthKeyLen = USM_AUTH_KU_LEN;
-
-- /* set the engineBoots and engineTime to null so that they are discovered */
-- session.engineBoots = 0;
-- session.engineTime = 0;
--
- /* set the authentication protocol */
- if (strcmp(snmp_auth_protocol, "MD5") == 0) {
- /* set the authentication method to MD5 */
-- session.securityAuthProto = snmp_duplicate_objid(usmHMACMD5AuthProtocol, OIDSIZE(usmHMACMD5AuthProtocol));
-- session.securityAuthProtoLen = OIDSIZE(usmHMACMD5AuthProtocol);
-+ session.securityAuthProto = snmp_duplicate_objid(usmHMACMD5AuthProtocol, USM_AUTH_PROTO_MD5_LEN);
-+ session.securityAuthProtoLen = USM_AUTH_PROTO_MD5_LEN;
- }else{
- /* set the authentication method to SHA1 */
-- session.securityAuthProto = snmp_duplicate_objid(usmHMACSHA1AuthProtocol, OIDSIZE(usmHMACSHA1AuthProtocol));
-- session.securityAuthProtoLen = OIDSIZE(usmHMACSHA1AuthProtocol);
-+ session.securityAuthProto = snmp_duplicate_objid(usmHMACSHA1AuthProtocol, USM_AUTH_PROTO_SHA_LEN);
-+ session.securityAuthProtoLen = USM_AUTH_PROTO_SHA_LEN;
- }
-
- /* set the authentication key to the hashed version. The password must me at least 8 char */
-@@ -255,16 +253,16 @@
- session.securityLevel = SNMP_SEC_LEVEL_AUTHNOPRIV;
- }else{
- if (strcmp(snmp_priv_protocol, "DES") == 0) {
-- session.securityPrivProto = snmp_duplicate_objid(usmDESPrivProtocol, OIDSIZE(usmDESPrivProtocol));
-- session.securityPrivProtoLen = OIDSIZE(usmDESPrivProtocol);
-+ session.securityPrivProto = snmp_duplicate_objid(usmDESPrivProtocol, USM_PRIV_PROTO_DES_LEN);
-+ session.securityPrivProtoLen = USM_PRIV_PROTO_DES_LEN;
- session.securityPrivKeyLen = USM_PRIV_KU_LEN;
-
- /* set the security level to authenticate, and encrypted */
- session.securityLevel = SNMP_SEC_LEVEL_AUTHPRIV;
- }else{
-- #if defined(usmAESPrivProtocol) && SNMP_DEFAULT_PRIV_PROTO == usmAESPrivProtocol
-- session.securityPrivProto = snmp_duplicate_objid(usmAESPrivProtocol, OIDSIZE(usmAESPrivProtocol));
-- session.securityPrivProtoLen = OIDSIZE(usmAESPrivProtocol);
-+ #if defined(USM_PRIV_PROTO_AES_LEN)
-+ session.securityPrivProto = snmp_duplicate_objid(usmAESPrivProtocol, USM_PRIV_PROTO_AES_LEN);
-+ session.securityPrivProtoLen = USM_PRIV_PROTO_AES_LEN;
- session.securityPrivKeyLen = USM_PRIV_KU_LEN;
- #else
- session.securityPrivProto = snmp_duplicate_objid(usmAES128PrivProtocol, OIDSIZE(usmAES128PrivProtocol));