Accepting request 641283 from home:abergmann:branches:network:utilities
- Update to net-snmp-5.8. Fixes included: * Fix remote DoS in agent/helpers/table.c (bsc#1111122, CVE-2018-18065) * Fix agentx freezing on timeout (bsc#1027353) * swintst_rpm: Protect against unspecified Group name (bsc#1102775) - Add tsm and tlstm MIBs and the USM security module. (bsc#1081164) - Rename and refactor patches and remove those that are already included inside the new version. Added: * net-snmp-5.8-socket-path.patch * net-snmp-5.8-testing-empty-arptable.patch * net-snmp-5.8-pie.patch * net-snmp-5.8-net-snmp-config-headercheck.patch * net-snmp-5.8-perl-tk-warning.patch * net-snmp-5.8-velocity-mib.patch * net-snmp-5.8-netgroups.patch * net-snmp-5.8-snmpstatus-suppress-output.patch * net-snmp-5.8-fix-Makefile.PL.patch * net-snmp-5.8-modern-rpm-api.patch * net-snmp-5.8-fix-python3.patch Removed: * net-snmp-5.7.3-socket-path.patch * net-snmp-5.7.3-testing-empty-arptable.patch * net-snmp-5.7.3-pie.patch * net-snmp-5.7.3-net-snmp-config-headercheck.patch * net-snmp-5.7.3-perl-tk-warning.patch * net-snmp-5.7.3-velocity-mib.patch * net-snmp-5.7.3-fix-snmpd-crashing-when-an-agentx-disconnects.patch * net-snmp-5.7.3-netgroups.patch * net-snmp-5.7.3-snmpstatus-suppress-output.patch OBS-URL: https://build.opensuse.org/request/show/641283 OBS-URL: https://build.opensuse.org/package/show/network:utilities/net-snmp?expand=0&rev=16
This commit is contained in:
parent
a6c0cefedd
commit
d10b528e62
File diff suppressed because it is too large
Load Diff
@ -1,23 +0,0 @@
|
|||||||
diff -up net-snmp-5.7.3/perl/ASN/Makefile.PL.orig net-snmp-5.7.3/perl/ASN/Makefile.PL
|
|
||||||
--- net-snmp-5.7.3/perl/ASN/Makefile.PL.orig 2016-05-06 10:35:30.005905040 +0200
|
|
||||||
+++ net-snmp-5.7.3/perl/ASN/Makefile.PL 2016-05-06 10:35:57.518776400 +0200
|
|
||||||
@@ -3,6 +3,7 @@ require 5;
|
|
||||||
use Config;
|
|
||||||
use Getopt::Long;
|
|
||||||
my $lib_version;
|
|
||||||
+my %MakeParams = ();
|
|
||||||
|
|
||||||
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
|
|
||||||
# the contents of the Makefile that is written.
|
|
||||||
diff -up net-snmp-5.7.3/perl/Makefile.PL.orig net-snmp-5.7.3/perl/Makefile.PL
|
|
||||||
--- net-snmp-5.7.3/perl/Makefile.PL.orig 2016-05-06 10:34:38.975143641 +0200
|
|
||||||
+++ net-snmp-5.7.3/perl/Makefile.PL 2016-05-06 10:35:13.326983024 +0200
|
|
||||||
@@ -2,6 +2,7 @@ use ExtUtils::MakeMaker;
|
|
||||||
use Config;
|
|
||||||
use Getopt::Long;
|
|
||||||
require 5;
|
|
||||||
+my %MakeParams = ();
|
|
||||||
|
|
||||||
%MakeParams = InitMakeParams();
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,120 +0,0 @@
|
|||||||
diff -Nurp net-snmp-5.7.3.pre5-orig/snmplib/snmp_api.c net-snmp-5.7.3.pre5/snmplib/snmp_api.c
|
|
||||||
--- net-snmp-5.7.3.pre5-orig/snmplib/snmp_api.c 2015-08-13 21:33:38.835653065 +0200
|
|
||||||
+++ net-snmp-5.7.3.pre5/snmplib/snmp_api.c 2015-08-13 21:54:03.099348588 +0200
|
|
||||||
@@ -4350,10 +4350,9 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char
|
|
||||||
u_char type;
|
|
||||||
u_char msg_type;
|
|
||||||
u_char *var_val;
|
|
||||||
- int badtype = 0;
|
|
||||||
size_t len;
|
|
||||||
size_t four;
|
|
||||||
- netsnmp_variable_list *vp = NULL;
|
|
||||||
+ netsnmp_variable_list *vp = NULL, *vplast = NULL;
|
|
||||||
oid objid[MAX_OID_LEN];
|
|
||||||
u_char *p;
|
|
||||||
|
|
||||||
@@ -4493,38 +4492,24 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char
|
|
||||||
(ASN_SEQUENCE | ASN_CONSTRUCTOR),
|
|
||||||
"varbinds");
|
|
||||||
if (data == NULL)
|
|
||||||
- return -1;
|
|
||||||
+ goto fail;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* get each varBind sequence
|
|
||||||
*/
|
|
||||||
while ((int) *length > 0) {
|
|
||||||
- netsnmp_variable_list *vptemp;
|
|
||||||
- vptemp = (netsnmp_variable_list *) malloc(sizeof(*vptemp));
|
|
||||||
- if (NULL == vptemp) {
|
|
||||||
- return -1;
|
|
||||||
- }
|
|
||||||
- if (NULL == vp) {
|
|
||||||
- pdu->variables = vptemp;
|
|
||||||
- } else {
|
|
||||||
- vp->next_variable = vptemp;
|
|
||||||
- }
|
|
||||||
- vp = vptemp;
|
|
||||||
+ vp = SNMP_MALLOC_TYPEDEF(netsnmp_variable_list);
|
|
||||||
+ if (NULL == vp)
|
|
||||||
+ goto fail;
|
|
||||||
|
|
||||||
- vp->next_variable = NULL;
|
|
||||||
- vp->val.string = NULL;
|
|
||||||
vp->name_length = MAX_OID_LEN;
|
|
||||||
- vp->name = NULL;
|
|
||||||
- vp->index = 0;
|
|
||||||
- vp->data = NULL;
|
|
||||||
- vp->dataFreeHook = NULL;
|
|
||||||
DEBUGDUMPSECTION("recv", "VarBind");
|
|
||||||
data = snmp_parse_var_op(data, objid, &vp->name_length, &vp->type,
|
|
||||||
&vp->val_len, &var_val, length);
|
|
||||||
if (data == NULL)
|
|
||||||
- return -1;
|
|
||||||
+ goto fail;
|
|
||||||
if (snmp_set_var_objid(vp, objid, vp->name_length))
|
|
||||||
- return -1;
|
|
||||||
+ goto fail;
|
|
||||||
|
|
||||||
len = MAX_PACKET_LENGTH;
|
|
||||||
DEBUGDUMPHEADER("recv", "Value");
|
|
||||||
@@ -4604,7 +4589,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char
|
|
||||||
vp->val.string = (u_char *) malloc(vp->val_len);
|
|
||||||
}
|
|
||||||
if (vp->val.string == NULL) {
|
|
||||||
- return -1;
|
|
||||||
+ goto fail;
|
|
||||||
}
|
|
||||||
p = asn_parse_string(var_val, &len, &vp->type, vp->val.string,
|
|
||||||
&vp->val_len);
|
|
||||||
@@ -4619,7 +4604,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char
|
|
||||||
vp->val_len *= sizeof(oid);
|
|
||||||
vp->val.objid = (oid *) malloc(vp->val_len);
|
|
||||||
if (vp->val.objid == NULL) {
|
|
||||||
- return -1;
|
|
||||||
+ goto fail;
|
|
||||||
}
|
|
||||||
memmove(vp->val.objid, objid, vp->val_len);
|
|
||||||
break;
|
|
||||||
@@ -4631,21 +4616,37 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char
|
|
||||||
case ASN_BIT_STR:
|
|
||||||
vp->val.bitstring = (u_char *) malloc(vp->val_len);
|
|
||||||
if (vp->val.bitstring == NULL) {
|
|
||||||
- return -1;
|
|
||||||
+ goto fail;
|
|
||||||
}
|
|
||||||
p = asn_parse_bitstring(var_val, &len, &vp->type,
|
|
||||||
vp->val.bitstring, &vp->val_len);
|
|
||||||
if (!p)
|
|
||||||
- return -1;
|
|
||||||
+ goto fail;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
snmp_log(LOG_ERR, "bad type returned (%x)\n", vp->type);
|
|
||||||
- badtype = -1;
|
|
||||||
+ goto fail;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
DEBUGINDENTADD(-4);
|
|
||||||
+
|
|
||||||
+ if (NULL == vplast) {
|
|
||||||
+ pdu->variables = vp;
|
|
||||||
+ } else {
|
|
||||||
+ vplast->next_variable = vp;
|
|
||||||
+ }
|
|
||||||
+ vplast = vp;
|
|
||||||
+ vp = NULL;
|
|
||||||
}
|
|
||||||
- return badtype;
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ fail:
|
|
||||||
+ DEBUGMSGTL(("recv", "error while parsing VarBindList\n"));
|
|
||||||
+ /** if we were parsing a var, remove it from the pdu and free it */
|
|
||||||
+ if (vp)
|
|
||||||
+ snmp_free_var(vp);
|
|
||||||
+
|
|
||||||
+ return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
@ -1,54 +0,0 @@
|
|||||||
commit f9304c83f76202db0e684269ca1af32e43cd9db4
|
|
||||||
Author: Jan Safranek <jsafranek@users.sourceforge.net>
|
|
||||||
Date: Tue Feb 7 14:53:44 2012 +0100
|
|
||||||
|
|
||||||
CHANGES: PATCH 1633670: fixed snmpd crashing when an AgentX subagent disconnect in the middle of processing of a request.
|
|
||||||
|
|
||||||
I fixed also the memory leak reported in the tracker comments.
|
|
||||||
|
|
||||||
Index: net-snmp-5.7.2/agent/mibgroup/agentx/master.c
|
|
||||||
===================================================================
|
|
||||||
--- net-snmp-5.7.2.orig/agent/mibgroup/agentx/master.c
|
|
||||||
+++ net-snmp-5.7.2/agent/mibgroup/agentx/master.c
|
|
||||||
@@ -219,6 +219,9 @@ agentx_got_response(int operation,
|
|
||||||
if (!cache) {
|
|
||||||
DEBUGMSGTL(("agentx/master", "response too late on session %8p\n",
|
|
||||||
session));
|
|
||||||
+ /* response is too late, free the cache */
|
|
||||||
+ if (magic)
|
|
||||||
+ netsnmp_free_delegated_cache((netsnmp_delegated_cache*) magic);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
requests = cache->requests;
|
|
||||||
@@ -606,6 +609,8 @@ agentx_master_handler(netsnmp_mib_handle
|
|
||||||
result = snmp_async_send(ax_session, pdu, agentx_got_response, cb_data);
|
|
||||||
if (result == 0) {
|
|
||||||
snmp_free_pdu(pdu);
|
|
||||||
+ if (cb_data)
|
|
||||||
+ netsnmp_free_delegated_cache((netsnmp_delegated_cache*) cb_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
return SNMP_ERR_NOERROR;
|
|
||||||
Index: net-snmp-5.7.2/agent/mibgroup/agentx/master_admin.c
|
|
||||||
===================================================================
|
|
||||||
--- net-snmp-5.7.2.orig/agent/mibgroup/agentx/master_admin.c
|
|
||||||
+++ net-snmp-5.7.2/agent/mibgroup/agentx/master_admin.c
|
|
||||||
@@ -133,11 +133,16 @@ close_agentx_session(netsnmp_session * s
|
|
||||||
* requests, so that the delegated request will be completed and
|
|
||||||
* further requests can be processed
|
|
||||||
*/
|
|
||||||
- netsnmp_remove_delegated_requests_for_session(session);
|
|
||||||
+ while (netsnmp_remove_delegated_requests_for_session(session)) {
|
|
||||||
+ DEBUGMSGTL(("agentx/master", "Continue removing delegated reqests\n"));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (session->subsession != NULL) {
|
|
||||||
netsnmp_session *subsession = session->subsession;
|
|
||||||
for(; subsession; subsession = subsession->next) {
|
|
||||||
- netsnmp_remove_delegated_requests_for_session(subsession);
|
|
||||||
+ while (netsnmp_remove_delegated_requests_for_session(subsession)) {
|
|
||||||
+ DEBUGMSGTL(("agentx/master", "Continue removing delegated subsession reqests\n"));
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
|||||||
diff -Nurp net-snmp-5.7.3-orig/agent/helpers/table.c net-snmp-5.7.3/agent/helpers/table.c
|
|
||||||
--- net-snmp-5.7.3-orig/agent/helpers/table.c 2014-12-08 21:23:22.000000000 +0100
|
|
||||||
+++ net-snmp-5.7.3/agent/helpers/table.c 2018-10-09 00:54:37.410522720 +0200
|
|
||||||
@@ -406,6 +406,8 @@ table_helper_handler(netsnmp_mib_handler
|
|
||||||
if (reqinfo->mode == MODE_GET)
|
|
||||||
table_helper_cleanup(reqinfo, request,
|
|
||||||
SNMP_NOSUCHOBJECT);
|
|
||||||
+ else
|
|
||||||
+ request->processed = 1; /* skip if next handler called */
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -483,6 +485,8 @@ table_helper_handler(netsnmp_mib_handler
|
|
||||||
#endif /* NETSNMP_NO_WRITE_SUPPORT */
|
|
||||||
table_helper_cleanup(reqinfo, request,
|
|
||||||
SNMP_NOSUCHOBJECT);
|
|
||||||
+ else
|
|
||||||
+ request->processed = 1; /* skip if next handler called */
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
/*
|
|
@ -1,286 +0,0 @@
|
|||||||
diff -Nurp net-snmp-5.7.3.orig/configure.d/config_os_functions net-snmp-5.7.3/configure.d/config_os_functions
|
|
||||||
--- net-snmp-5.7.3.orig/configure.d/config_os_functions 2014-12-08 21:23:22.000000000 +0100
|
|
||||||
+++ net-snmp-5.7.3/configure.d/config_os_functions 2015-07-16 10:32:15.159643068 +0200
|
|
||||||
@@ -31,11 +31,12 @@ AC_CHECK_FUNCS([lrand48 rand
|
|
||||||
[signal sigset ] )
|
|
||||||
|
|
||||||
# Library:
|
|
||||||
-AC_CHECK_FUNCS([closedir fgetc_unlocked flockfile ] dnl
|
|
||||||
- [fork funlockfile getipnodebyname ] dnl
|
|
||||||
- [gettimeofday if_nametoindex mkstemp ] dnl
|
|
||||||
- [opendir readdir regcomp ] dnl
|
|
||||||
- [setenv setitimer setlocale ] dnl
|
|
||||||
+AC_CHECK_FUNCS([closedir endnetgrent fgetc_unlocked ] dnl
|
|
||||||
+ [flockfile fork funlockfile ] dnl
|
|
||||||
+ [getipnodebyname getnetgrent gettimeofday ] dnl
|
|
||||||
+ [if_nametoindex mkstemp opendir ] dnl
|
|
||||||
+ [readdir regcomp setenv ] dnl
|
|
||||||
+ [setitimer setlocale setnetgrent ] dnl
|
|
||||||
[setsid snprintf strcasestr ] dnl
|
|
||||||
[strdup strerror strncasecmp ] dnl
|
|
||||||
[sysconf times vsnprintf ] )
|
|
||||||
diff -Nurp net-snmp-5.7.3.orig/man/snmpd.conf.5.def net-snmp-5.7.3/man/snmpd.conf.5.def
|
|
||||||
--- net-snmp-5.7.3.orig/man/snmpd.conf.5.def 2014-12-08 21:23:22.000000000 +0100
|
|
||||||
+++ net-snmp-5.7.3/man/snmpd.conf.5.def 2015-07-16 10:41:34.337850287 +0200
|
|
||||||
@@ -389,7 +389,14 @@ map an SNMPv1 or SNMPv2c community strin
|
|
||||||
a particular range of source addresses, or globally (\fI"default"\fR).
|
|
||||||
A restricted source can either be a specific hostname (or address), or
|
|
||||||
a subnet - represented as IP/MASK (e.g. 10.10.10.0/255.255.255.0), or
|
|
||||||
-IP/BITS (e.g. 10.10.10.0/24), or the IPv6 equivalents.
|
|
||||||
+IP/BITS (e.g. 10.10.10.0/24), or the IPv6 equivalents. It is also possible
|
|
||||||
+to reference a specific \fInetgroup\fR starting with an '@' character (e.g.
|
|
||||||
+@adminhosts). The \fInetgroup\fR lookup is running through the NSS (Name
|
|
||||||
+Services Switch) making it possible to define the group locally or via
|
|
||||||
+NIS/LDAP.
|
|
||||||
+.IP
|
|
||||||
+Note: The hostname DNS lookup and \fInetgroup\fR resolution is done only
|
|
||||||
+during snmpd start or reload.
|
|
||||||
.IP
|
|
||||||
The same community string can be specified in several separate directives
|
|
||||||
(presumably with different source tokens), and the first source/community
|
|
||||||
diff -Nurp net-snmp-5.7.3.orig/snmplib/transports/snmpUDPDomain.c net-snmp-5.7.3/snmplib/transports/snmpUDPDomain.c
|
|
||||||
--- net-snmp-5.7.3.orig/snmplib/transports/snmpUDPDomain.c 2014-12-08 21:23:22.000000000 +0100
|
|
||||||
+++ net-snmp-5.7.3/snmplib/transports/snmpUDPDomain.c 2015-07-16 10:32:15.160643078 +0200
|
|
||||||
@@ -88,6 +88,11 @@ void _netsnmp_udp_sockopt_set(int fd, in
|
|
||||||
int
|
|
||||||
netsnmp_sockaddr_in2(struct sockaddr_in *addr,
|
|
||||||
const char *inpeername, const char *default_target);
|
|
||||||
+static void
|
|
||||||
+netsnmp_udp_com2SecList_add(char *secName, size_t secNameLen,
|
|
||||||
+ char *contextName, size_t contextNameLen,
|
|
||||||
+ char *community, size_t communityLen,
|
|
||||||
+ struct in_addr network, struct in_addr mask);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Return a string representing the address in data, or else the "far end"
|
|
||||||
@@ -100,6 +105,59 @@ netsnmp_udp_fmtaddr(netsnmp_transport *t
|
|
||||||
return netsnmp_ipv4_fmtaddr("UDP", t, data, len);
|
|
||||||
}
|
|
||||||
|
|
||||||
+static int
|
|
||||||
+netsnmp_udp_resolve_source(char *source, struct in_addr *network,
|
|
||||||
+ struct in_addr *mask)
|
|
||||||
+{
|
|
||||||
+ /* Split the source/netmask parts */
|
|
||||||
+ char *strmask = strchr(source, '/');
|
|
||||||
+ if (strmask != NULL)
|
|
||||||
+ /* Mask given. */
|
|
||||||
+ *strmask++ = '\0';
|
|
||||||
+
|
|
||||||
+ /* Try interpreting as a dotted quad. */
|
|
||||||
+ if (inet_pton(AF_INET, source, network) == 0) {
|
|
||||||
+ /* Nope, wasn't a dotted quad. Must be a hostname. */
|
|
||||||
+ int ret = netsnmp_gethostbyname_v4(source, &(network->s_addr));
|
|
||||||
+ if (ret < 0) {
|
|
||||||
+ config_perror("cannot resolve source hostname");
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Now work out the mask. */
|
|
||||||
+ if (strmask == NULL || *strmask == '\0') {
|
|
||||||
+ /* No mask was given. Assume /32 */
|
|
||||||
+ mask->s_addr = (in_addr_t)(~0UL);
|
|
||||||
+ } else {
|
|
||||||
+ /* Try to interpret mask as a "number of 1 bits". */
|
|
||||||
+ char* cp;
|
|
||||||
+ long maskLen = strtol(strmask, &cp, 10);
|
|
||||||
+ if (*cp == '\0') {
|
|
||||||
+ if (0 < maskLen && maskLen <= 32)
|
|
||||||
+ mask->s_addr = htonl((in_addr_t)(~0UL << (32 - maskLen)));
|
|
||||||
+ else if (maskLen == 0)
|
|
||||||
+ mask->s_addr = 0;
|
|
||||||
+ else {
|
|
||||||
+ config_perror("bad mask length");
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ /* Try to interpret mask as a dotted quad. */
|
|
||||||
+ else if (inet_pton(AF_INET, strmask, mask) == 0) {
|
|
||||||
+ config_perror("bad mask");
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Check that the network and mask are consistent. */
|
|
||||||
+ if (network->s_addr & ~mask->s_addr) {
|
|
||||||
+ config_perror("source/mask mismatch");
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
|
|
||||||
#if defined(HAVE_IP_PKTINFO) || defined(HAVE_IP_RECVDSTADDR)
|
|
||||||
|
|
||||||
@@ -259,102 +317,85 @@ netsnmp_udp_parse_security(const char *t
|
|
||||||
if (strcmp(source, "default") == 0) {
|
|
||||||
network.s_addr = 0;
|
|
||||||
mask.s_addr = 0;
|
|
||||||
+ netsnmp_udp_com2SecList_add(secName, secNameLen, contextName,
|
|
||||||
+ contextNameLen, community, communityLen, network, mask);
|
|
||||||
} else {
|
|
||||||
- /* Split the source/netmask parts */
|
|
||||||
- char *strmask = strchr(source, '/');
|
|
||||||
- if (strmask != NULL)
|
|
||||||
- /* Mask given. */
|
|
||||||
- *strmask++ = '\0';
|
|
||||||
-
|
|
||||||
- /* Try interpreting as a dotted quad. */
|
|
||||||
- if (inet_pton(AF_INET, source, &network) == 0) {
|
|
||||||
- /* Nope, wasn't a dotted quad. Must be a hostname. */
|
|
||||||
- int ret = netsnmp_gethostbyname_v4(source, &network.s_addr);
|
|
||||||
- if (ret < 0) {
|
|
||||||
- config_perror("cannot resolve source hostname");
|
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* Now work out the mask. */
|
|
||||||
- if (strmask == NULL || *strmask == '\0') {
|
|
||||||
- /* No mask was given. Assume /32 */
|
|
||||||
- mask.s_addr = (in_addr_t)(~0UL);
|
|
||||||
- } else {
|
|
||||||
- /* Try to interpret mask as a "number of 1 bits". */
|
|
||||||
- char* cp;
|
|
||||||
- long maskLen = strtol(strmask, &cp, 10);
|
|
||||||
- if (*cp == '\0') {
|
|
||||||
- if (0 < maskLen && maskLen <= 32)
|
|
||||||
- mask.s_addr = htonl((in_addr_t)(~0UL << (32 - maskLen)));
|
|
||||||
- else if (maskLen == 0)
|
|
||||||
- mask.s_addr = 0;
|
|
||||||
- else {
|
|
||||||
- config_perror("bad mask length");
|
|
||||||
- return;
|
|
||||||
+#if HAVE_ENDNETGRENT && HAVE_GETNETGRENT && HAVE_SETNETGRENT
|
|
||||||
+ /* Interpret as netgroup */
|
|
||||||
+ if (*source == '@') {
|
|
||||||
+ char *netgroup = source+1;
|
|
||||||
+ char *host, *user, *domain;
|
|
||||||
+ setnetgrent(netgroup);
|
|
||||||
+ while (getnetgrent(&host, &user, &domain)) {
|
|
||||||
+ if (netsnmp_udp_resolve_source(host, &network, &mask) == 0) {
|
|
||||||
+ netsnmp_udp_com2SecList_add(secName, secNameLen, contextName,
|
|
||||||
+ contextNameLen, community, communityLen, network, mask);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- /* Try to interpret mask as a dotted quad. */
|
|
||||||
- else if (inet_pton(AF_INET, strmask, &mask) == 0) {
|
|
||||||
- config_perror("bad mask");
|
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* Check that the network and mask are consistent. */
|
|
||||||
- if (network.s_addr & ~mask.s_addr) {
|
|
||||||
- config_perror("source/mask mismatch");
|
|
||||||
- return;
|
|
||||||
+ endnetgrent();
|
|
||||||
+ }
|
|
||||||
+ /* Without '@' it has to be an address or hostname */
|
|
||||||
+ else
|
|
||||||
+#endif
|
|
||||||
+ {
|
|
||||||
+ if (netsnmp_udp_resolve_source(source, &network, &mask) == 0) {
|
|
||||||
+ netsnmp_udp_com2SecList_add(secName, secNameLen, contextName,
|
|
||||||
+ contextNameLen, community, communityLen, network, mask);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+}
|
|
||||||
|
|
||||||
- {
|
|
||||||
- void* v = malloc(offsetof(com2SecEntry, community) + communityLen +
|
|
||||||
- secNameLen + contextNameLen);
|
|
||||||
-
|
|
||||||
- com2SecEntry* e = (com2SecEntry*)v;
|
|
||||||
- char* last = ((char*)v) + offsetof(com2SecEntry, community);
|
|
||||||
+static void
|
|
||||||
+netsnmp_udp_com2SecList_add(char *secName, size_t secNameLen, char *contextName,
|
|
||||||
+ size_t contextNameLen, char *community, size_t communityLen,
|
|
||||||
+ struct in_addr network, struct in_addr mask)
|
|
||||||
+{
|
|
||||||
+ void *v = malloc(offsetof(com2SecEntry, community) + communityLen +
|
|
||||||
+ secNameLen + contextNameLen);
|
|
||||||
|
|
||||||
- if (v == NULL) {
|
|
||||||
- config_perror("memory error");
|
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
+ com2SecEntry* e = (com2SecEntry*)v;
|
|
||||||
+ char* last = ((char*)v) + offsetof(com2SecEntry, community);
|
|
||||||
|
|
||||||
- /*
|
|
||||||
- * Everything is okay. Copy the parameters to the structure allocated
|
|
||||||
- * above and add it to END of the list.
|
|
||||||
- */
|
|
||||||
+ if (v == NULL) {
|
|
||||||
+ config_perror("memory error");
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- {
|
|
||||||
- char buf1[INET_ADDRSTRLEN];
|
|
||||||
- char buf2[INET_ADDRSTRLEN];
|
|
||||||
- DEBUGMSGTL(("netsnmp_udp_parse_security",
|
|
||||||
- "<\"%s\", %s/%s> => \"%s\"\n", community,
|
|
||||||
- inet_ntop(AF_INET, &network, buf1, sizeof(buf1)),
|
|
||||||
- inet_ntop(AF_INET, &mask, buf2, sizeof(buf2)),
|
|
||||||
- secName));
|
|
||||||
- }
|
|
||||||
+ /*
|
|
||||||
+ * Everything is okay. Copy the parameters to the structure allocated
|
|
||||||
+ * above and add it to END of the list.
|
|
||||||
+ */
|
|
||||||
|
|
||||||
- memcpy(last, community, communityLen);
|
|
||||||
- last += communityLen;
|
|
||||||
- memcpy(last, secName, secNameLen);
|
|
||||||
- e->secName = last;
|
|
||||||
- last += secNameLen;
|
|
||||||
- if (contextNameLen) {
|
|
||||||
- memcpy(last, contextName, contextNameLen);
|
|
||||||
- e->contextName = last;
|
|
||||||
- } else
|
|
||||||
- e->contextName = last - 1;
|
|
||||||
- e->network = network.s_addr;
|
|
||||||
- e->mask = mask.s_addr;
|
|
||||||
- e->next = NULL;
|
|
||||||
-
|
|
||||||
- if (com2SecListLast != NULL) {
|
|
||||||
- com2SecListLast->next = e;
|
|
||||||
- com2SecListLast = e;
|
|
||||||
- } else {
|
|
||||||
- com2SecListLast = com2SecList = e;
|
|
||||||
- }
|
|
||||||
+ {
|
|
||||||
+ char buf1[INET_ADDRSTRLEN];
|
|
||||||
+ char buf2[INET_ADDRSTRLEN];
|
|
||||||
+ DEBUGMSGTL(("netsnmp_udp_parse_security",
|
|
||||||
+ "<\"%s\", %s/%s> => \"%s\"\n", community,
|
|
||||||
+ inet_ntop(AF_INET, &network, buf1, sizeof(buf1)),
|
|
||||||
+ inet_ntop(AF_INET, &mask, buf2, sizeof(buf2)),
|
|
||||||
+ secName));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ memcpy(last, community, communityLen);
|
|
||||||
+ last += communityLen;
|
|
||||||
+ memcpy(last, secName, secNameLen);
|
|
||||||
+ e->secName = last;
|
|
||||||
+ last += secNameLen;
|
|
||||||
+ if (contextNameLen) {
|
|
||||||
+ memcpy(last, contextName, contextNameLen);
|
|
||||||
+ e->contextName = last;
|
|
||||||
+ } else
|
|
||||||
+ e->contextName = last - 1;
|
|
||||||
+ e->network = network.s_addr;
|
|
||||||
+ e->mask = mask.s_addr;
|
|
||||||
+ e->next = NULL;
|
|
||||||
+
|
|
||||||
+ if (com2SecListLast != NULL) {
|
|
||||||
+ com2SecListLast->next = e;
|
|
||||||
+ com2SecListLast = e;
|
|
||||||
+ } else {
|
|
||||||
+ com2SecListLast = com2SecList = e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:12ef89613c7707dc96d13335f153c1921efc9d61d3708ef09f3fc4a7014fb4f0
|
|
||||||
size 6382428
|
|
22
net-snmp-5.8-fix-Makefile.PL.patch
Normal file
22
net-snmp-5.8-fix-Makefile.PL.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
diff -Nurp net-snmp-5.8-orig/perl/ASN/Makefile.PL net-snmp-5.8/perl/ASN/Makefile.PL
|
||||||
|
--- net-snmp-5.8-orig/perl/ASN/Makefile.PL 2018-10-10 09:45:14.875074783 +0000
|
||||||
|
+++ net-snmp-5.8/perl/ASN/Makefile.PL 2018-10-10 15:02:06.342732928 +0000
|
||||||
|
@@ -8,6 +8,7 @@ use Config;
|
||||||
|
use MakefileSubs;
|
||||||
|
|
||||||
|
my $lib_version;
|
||||||
|
+my %MakeParams = ();
|
||||||
|
|
||||||
|
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
|
||||||
|
# the contents of the Makefile that is written.
|
||||||
|
diff -Nurp net-snmp-5.8-orig/perl/Makefile.PL net-snmp-5.8/perl/Makefile.PL
|
||||||
|
--- net-snmp-5.8-orig/perl/Makefile.PL 2018-10-10 09:45:14.875074783 +0000
|
||||||
|
+++ net-snmp-5.8/perl/Makefile.PL 2018-10-10 15:02:25.810916073 +0000
|
||||||
|
@@ -4,6 +4,7 @@ use ExtUtils::MakeMaker;
|
||||||
|
use Config;
|
||||||
|
require 5;
|
||||||
|
use MakefileSubs;
|
||||||
|
+my %MakeParams = ();
|
||||||
|
|
||||||
|
WriteMakefile(TopLevelInitMakeParams());
|
||||||
|
|
578
net-snmp-5.8-fix-python3.patch
Normal file
578
net-snmp-5.8-fix-python3.patch
Normal file
@ -0,0 +1,578 @@
|
|||||||
|
diff -Nurp net-snmp-5.8-orig/python/netsnmp/client.py net-snmp-5.8/python/netsnmp/client.py
|
||||||
|
--- net-snmp-5.8-orig/python/netsnmp/client.py 2018-10-10 09:45:14.951075479 +0000
|
||||||
|
+++ net-snmp-5.8/python/netsnmp/client.py 2018-10-10 19:40:47.130879742 +0000
|
||||||
|
@@ -34,12 +34,12 @@ def _parse_session_args(kargs):
|
||||||
|
'TheirHostname':'',
|
||||||
|
'TrustCert':''
|
||||||
|
}
|
||||||
|
- keys = kargs.keys()
|
||||||
|
+ keys = list(kargs.keys())
|
||||||
|
for key in keys:
|
||||||
|
- if sessArgs.has_key(key):
|
||||||
|
+ if key in sessArgs:
|
||||||
|
sessArgs[key] = kargs[key]
|
||||||
|
else:
|
||||||
|
- print >>stderr, "ERROR: unknown key", key
|
||||||
|
+ print("ERROR: unknown key", key, file=stderr)
|
||||||
|
return sessArgs
|
||||||
|
|
||||||
|
def STR(obj):
|
||||||
|
@@ -132,7 +132,7 @@ class Session(object):
|
||||||
|
|
||||||
|
sess_args = _parse_session_args(args)
|
||||||
|
|
||||||
|
- for k, v in sess_args.items():
|
||||||
|
+ for k, v in list(sess_args.items()):
|
||||||
|
self.__dict__[k] = v
|
||||||
|
|
||||||
|
|
||||||
|
diff -Nurp net-snmp-5.8-orig/python/netsnmp/client_intf.c net-snmp-5.8/python/netsnmp/client_intf.c
|
||||||
|
--- net-snmp-5.8-orig/python/netsnmp/client_intf.c 2018-10-10 09:45:14.951075479 +0000
|
||||||
|
+++ net-snmp-5.8/python/netsnmp/client_intf.c 2018-10-10 19:52:16.993235587 +0000
|
||||||
|
@@ -853,7 +853,11 @@ py_netsnmp_attr_string(PyObject *obj, ch
|
||||||
|
PyObject *attr = PyObject_GetAttrString(obj, attr_name);
|
||||||
|
if (attr) {
|
||||||
|
int retval;
|
||||||
|
+#if PY_MAJOR_VERSION >= 3
|
||||||
|
+ retval = PyBytes_AsStringAndSize(attr, val, len);
|
||||||
|
+#else
|
||||||
|
retval = PyString_AsStringAndSize(attr, val, len);
|
||||||
|
+#endif
|
||||||
|
Py_DECREF(attr);
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
@@ -870,7 +874,11 @@ py_netsnmp_attr_long(PyObject *obj, char
|
||||||
|
if (obj && attr_name && PyObject_HasAttrString(obj, attr_name)) {
|
||||||
|
PyObject *attr = PyObject_GetAttrString(obj, attr_name);
|
||||||
|
if (attr) {
|
||||||
|
+#if PY_MAJOR_VERSION >= 3
|
||||||
|
+ val = PyLong_AsLong(attr);
|
||||||
|
+#else
|
||||||
|
val = PyInt_AsLong(attr);
|
||||||
|
+#endif
|
||||||
|
Py_DECREF(attr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -955,13 +963,22 @@ __py_netsnmp_update_session_errors(PyObj
|
||||||
|
|
||||||
|
py_netsnmp_attr_set_string(session, "ErrorStr", err_str, STRLEN(err_str));
|
||||||
|
|
||||||
|
+#if PY_MAJOR_VERSION >= 3
|
||||||
|
+ tmp_for_conversion = PyLong_FromLong(err_num);
|
||||||
|
+#else
|
||||||
|
tmp_for_conversion = PyInt_FromLong(err_num);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (!tmp_for_conversion)
|
||||||
|
return; /* nothing better to do? */
|
||||||
|
PyObject_SetAttrString(session, "ErrorNum", tmp_for_conversion);
|
||||||
|
Py_DECREF(tmp_for_conversion);
|
||||||
|
|
||||||
|
+#if PY_MAJOR_VERSION >= 3
|
||||||
|
+ tmp_for_conversion = PyLong_FromLong(err_ind);
|
||||||
|
+#else
|
||||||
|
tmp_for_conversion = PyInt_FromLong(err_ind);
|
||||||
|
+#endif
|
||||||
|
if (!tmp_for_conversion)
|
||||||
|
return; /* nothing better to do? */
|
||||||
|
PyObject_SetAttrString(session, "ErrorInd", tmp_for_conversion);
|
||||||
|
@@ -2490,13 +2507,28 @@ static PyMethodDef ClientMethods[] = {
|
||||||
|
{NULL, NULL, 0, NULL} /* Sentinel */
|
||||||
|
};
|
||||||
|
|
||||||
|
+#if PY_MAJOR_VERSION >= 3
|
||||||
|
+static struct PyModuleDef ClientModuleDef = {
|
||||||
|
+ PyModuleDef_HEAD_INIT,
|
||||||
|
+ "client_intf",
|
||||||
|
+ NULL,
|
||||||
|
+ -1,
|
||||||
|
+ ClientMethods,
|
||||||
|
+ NULL,
|
||||||
|
+ NULL,
|
||||||
|
+ NULL,
|
||||||
|
+ NULL
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+PyMODINIT_FUNC
|
||||||
|
+PyInit_client_intf(void)
|
||||||
|
+{
|
||||||
|
+ return PyModule_Create(&ClientModuleDef);
|
||||||
|
+}
|
||||||
|
+#else
|
||||||
|
PyMODINIT_FUNC
|
||||||
|
initclient_intf(void)
|
||||||
|
{
|
||||||
|
(void) Py_InitModule("client_intf", ClientMethods);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
diff -Nurp net-snmp-5.8-orig/python/netsnmp/tests/test.py net-snmp-5.8/python/netsnmp/tests/test.py
|
||||||
|
--- net-snmp-5.8-orig/python/netsnmp/tests/test.py 2018-10-10 09:45:14.951075479 +0000
|
||||||
|
+++ net-snmp-5.8/python/netsnmp/tests/test.py 2018-10-10 19:46:04.689790403 +0000
|
||||||
|
@@ -62,107 +62,107 @@ class BasicTests(unittest.TestCase):
|
||||||
|
self.assertEqual(var.iid, '')
|
||||||
|
|
||||||
|
def test_v1_get(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v1 GET tests -------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v1 GET tests -------------------------------------\n")
|
||||||
|
var = netsnmp.Varbind('.1.3.6.1.2.1.1.1', '0')
|
||||||
|
res = netsnmp.snmpget(var, **snmp_dest())
|
||||||
|
|
||||||
|
- print "v1 snmpget result: ", res, "\n"
|
||||||
|
+ print("v1 snmpget result: ", res, "\n")
|
||||||
|
self.assertEqual(len(res), 1)
|
||||||
|
|
||||||
|
- print "v1 get var: ", var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print("v1 get var: ", var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
self.assertEqual(var.tag, 'sysDescr')
|
||||||
|
self.assertEqual(var.iid, '0')
|
||||||
|
self.assertEqual(var.val, res[0])
|
||||||
|
self.assertEqual(var.type, 'OCTETSTR')
|
||||||
|
|
||||||
|
def test_v1_getnext(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v1 GETNEXT tests-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v1 GETNEXT tests-------------------------------------\n")
|
||||||
|
var = netsnmp.Varbind('.1.3.6.1.2.1.1.1', '0')
|
||||||
|
res = netsnmp.snmpgetnext(var, **snmp_dest())
|
||||||
|
|
||||||
|
- print "v1 snmpgetnext result: ", res, "\n"
|
||||||
|
+ print("v1 snmpgetnext result: ", res, "\n")
|
||||||
|
self.assertEqual(len(res), 1)
|
||||||
|
|
||||||
|
- print "v1 getnext var: ", var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print("v1 getnext var: ", var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
self.assertTrue(var.tag is not None)
|
||||||
|
self.assertTrue(var.iid is not None)
|
||||||
|
self.assertTrue(var.val is not None)
|
||||||
|
self.assertTrue(var.type is not None)
|
||||||
|
|
||||||
|
def test_v1_set(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v1 SET tests-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v1 SET tests-------------------------------------\n")
|
||||||
|
var = netsnmp.Varbind('sysLocation', '0', 'my new location')
|
||||||
|
res = netsnmp.snmpset(var, **snmp_dest())
|
||||||
|
|
||||||
|
- print "v1 snmpset result: ", res, "\n"
|
||||||
|
+ print("v1 snmpset result: ", res, "\n")
|
||||||
|
self.assertEqual(res, 1)
|
||||||
|
|
||||||
|
- print "v1 set var: ", var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print("v1 set var: ", var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
self.assertEqual(var.tag, 'sysLocation')
|
||||||
|
self.assertEqual(var.iid, '0')
|
||||||
|
self.assertEqual(var.val, 'my new location')
|
||||||
|
self.assertTrue(var.type is None)
|
||||||
|
|
||||||
|
def test_v1_walk(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v1 walk tests-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v1 walk tests-------------------------------------\n")
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('system'))
|
||||||
|
|
||||||
|
- print "v1 varlist walk in: "
|
||||||
|
+ print("v1 varlist walk in: ")
|
||||||
|
for var in varlist:
|
||||||
|
- print " ", var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print(" ", var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
|
||||||
|
res = netsnmp.snmpwalk(varlist, **snmp_dest())
|
||||||
|
- print "v1 snmpwalk result: ", res, "\n"
|
||||||
|
+ print("v1 snmpwalk result: ", res, "\n")
|
||||||
|
self.assertTrue(len(res) > 0)
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
|
||||||
|
def test_v1_walk_2(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v1 walk 2-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v1 walk 2-------------------------------------\n")
|
||||||
|
|
||||||
|
- print "v1 varbind walk in: "
|
||||||
|
+ print("v1 varbind walk in: ")
|
||||||
|
var = netsnmp.Varbind('system')
|
||||||
|
self.assertEqual(var.tag, 'system')
|
||||||
|
self.assertEqual(var.iid, '')
|
||||||
|
self.assertEqual(var.val, None)
|
||||||
|
self.assertEqual(var.type, None)
|
||||||
|
res = netsnmp.snmpwalk(var, **snmp_dest())
|
||||||
|
- print "v1 snmpwalk result (should be = orig): ", res, "\n"
|
||||||
|
+ print("v1 snmpwalk result (should be = orig): ", res, "\n")
|
||||||
|
self.assertTrue(len(res) > 0)
|
||||||
|
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
self.assertEqual(var.tag, 'system')
|
||||||
|
self.assertEqual(var.iid, '')
|
||||||
|
self.assertEqual(var.val, None)
|
||||||
|
self.assertEqual(var.type, None)
|
||||||
|
|
||||||
|
def test_v1_mv_get(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v1 multi-varbind test-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v1 multi-varbind test-------------------------------------\n")
|
||||||
|
sess = setup_v1()
|
||||||
|
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('sysUpTime', 0),
|
||||||
|
netsnmp.Varbind('sysContact', 0),
|
||||||
|
netsnmp.Varbind('sysLocation', 0))
|
||||||
|
vals = sess.get(varlist)
|
||||||
|
- print "v1 sess.get result: ", vals, "\n"
|
||||||
|
+ print("v1 sess.get result: ", vals, "\n")
|
||||||
|
self.assertTrue(len(vals) > 0)
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
|
||||||
|
vals = sess.getnext(varlist)
|
||||||
|
- print "v1 sess.getnext result: ", vals, "\n"
|
||||||
|
+ print("v1 sess.getnext result: ", vals, "\n")
|
||||||
|
self.assertTrue(len(vals) > 0)
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('sysUpTime'),
|
||||||
|
netsnmp.Varbind('sysORLastChange'),
|
||||||
|
@@ -171,71 +171,71 @@ class BasicTests(unittest.TestCase):
|
||||||
|
netsnmp.Varbind('sysORUpTime'))
|
||||||
|
|
||||||
|
vals = sess.getbulk(2, 8, varlist)
|
||||||
|
- print "v1 sess.getbulk result: ", vals, "\n"
|
||||||
|
+ print("v1 sess.getbulk result: ", vals, "\n")
|
||||||
|
self.assertEqual(vals, None) # GetBulk is not supported for v1
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
|
||||||
|
def test_v1_set_2(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v1 set2-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v1 set2-------------------------------------\n")
|
||||||
|
|
||||||
|
sess = setup_v1()
|
||||||
|
varlist = netsnmp.VarList(
|
||||||
|
netsnmp.Varbind('sysLocation', '0', 'my newer location'))
|
||||||
|
res = sess.set(varlist)
|
||||||
|
- print "v1 sess.set result: ", res, "\n"
|
||||||
|
+ print("v1 sess.set result: ", res, "\n")
|
||||||
|
|
||||||
|
def test_v1_walk_3(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v1 walk3-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v1 walk3-------------------------------------\n")
|
||||||
|
|
||||||
|
sess = setup_v1()
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('system'))
|
||||||
|
|
||||||
|
vals = sess.walk(varlist)
|
||||||
|
- print "v1 sess.walk result: ", vals, "\n"
|
||||||
|
+ print("v1 sess.walk result: ", vals, "\n")
|
||||||
|
self.assertTrue(len(vals) > 0)
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print " ", var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print(" ", var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
|
||||||
|
def test_v2c_get(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v2c get-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v2c get-------------------------------------\n")
|
||||||
|
|
||||||
|
sess = setup_v2()
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('sysUpTime', 0),
|
||||||
|
netsnmp.Varbind('sysContact', 0),
|
||||||
|
netsnmp.Varbind('sysLocation', 0))
|
||||||
|
vals = sess.get(varlist)
|
||||||
|
- print "v2 sess.get result: ", vals, "\n"
|
||||||
|
+ print("v2 sess.get result: ", vals, "\n")
|
||||||
|
self.assertEqual(len(vals), 3)
|
||||||
|
|
||||||
|
def test_v2c_getnext(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v2c getnext-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v2c getnext-------------------------------------\n")
|
||||||
|
|
||||||
|
sess = setup_v2()
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('sysUpTime', 0),
|
||||||
|
netsnmp.Varbind('sysContact', 0),
|
||||||
|
netsnmp.Varbind('sysLocation', 0))
|
||||||
|
for var in varlist:
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
- print "\n"
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
+ print("\n")
|
||||||
|
|
||||||
|
vals = sess.getnext(varlist)
|
||||||
|
- print "v2 sess.getnext result: ", vals, "\n"
|
||||||
|
+ print("v2 sess.getnext result: ", vals, "\n")
|
||||||
|
self.assertTrue(len(vals) > 0)
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
- print "\n"
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
+ print("\n")
|
||||||
|
|
||||||
|
def test_v2c_getbulk(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v2c getbulk-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v2c getbulk-------------------------------------\n")
|
||||||
|
|
||||||
|
sess = setup_v2()
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('sysUpTime'),
|
||||||
|
@@ -245,16 +245,16 @@ class BasicTests(unittest.TestCase):
|
||||||
|
netsnmp.Varbind('sysORUpTime'))
|
||||||
|
|
||||||
|
vals = sess.getbulk(2, 8, varlist)
|
||||||
|
- print "v2 sess.getbulk result: ", vals, "\n"
|
||||||
|
+ print("v2 sess.getbulk result: ", vals, "\n")
|
||||||
|
self.assertTrue(len(vals) > 0)
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
- print "\n"
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
+ print("\n")
|
||||||
|
|
||||||
|
def test_v2c_set(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v2c set-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v2c set-------------------------------------\n")
|
||||||
|
|
||||||
|
sess = setup_v2()
|
||||||
|
|
||||||
|
@@ -262,54 +262,54 @@ class BasicTests(unittest.TestCase):
|
||||||
|
netsnmp.Varbind('sysLocation', '0', 'my even newer location'))
|
||||||
|
|
||||||
|
res = sess.set(varlist)
|
||||||
|
- print "v2 sess.set result: ", res, "\n"
|
||||||
|
+ print("v2 sess.set result: ", res, "\n")
|
||||||
|
self.assertEqual(res, 1)
|
||||||
|
|
||||||
|
def test_v2c_walk(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v2c walk-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v2c walk-------------------------------------\n")
|
||||||
|
|
||||||
|
sess = setup_v2()
|
||||||
|
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('system'))
|
||||||
|
|
||||||
|
vals = sess.walk(varlist)
|
||||||
|
- print "v2 sess.walk result: ", vals, "\n"
|
||||||
|
+ print("v2 sess.walk result: ", vals, "\n")
|
||||||
|
self.assertTrue(len(vals) > 0)
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print " ", var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print(" ", var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
|
||||||
|
def test_v3_get(self):
|
||||||
|
- print "\n"
|
||||||
|
+ print("\n")
|
||||||
|
sess = setup_v3();
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('sysUpTime', 0),
|
||||||
|
netsnmp.Varbind('sysContact', 0),
|
||||||
|
netsnmp.Varbind('sysLocation', 0))
|
||||||
|
- print "---v3 get-------------------------------------\n"
|
||||||
|
+ print("---v3 get-------------------------------------\n")
|
||||||
|
vals = sess.get(varlist)
|
||||||
|
- print "v3 sess.get result: ", vals, "\n"
|
||||||
|
+ print("v3 sess.get result: ", vals, "\n")
|
||||||
|
self.assertTrue(len(vals) > 0)
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
- print "\n"
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
+ print("\n")
|
||||||
|
|
||||||
|
def test_v3_getnext(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v3 getnext-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v3 getnext-------------------------------------\n")
|
||||||
|
|
||||||
|
sess = setup_v3();
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('sysUpTime', 0),
|
||||||
|
netsnmp.Varbind('sysContact', 0),
|
||||||
|
netsnmp.Varbind('sysLocation', 0))
|
||||||
|
vals = sess.getnext(varlist)
|
||||||
|
- print "v3 sess.getnext result: ", vals, "\n"
|
||||||
|
+ print("v3 sess.getnext result: ", vals, "\n")
|
||||||
|
self.assertTrue(len(vals) > 0)
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
- print "\n"
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
+ print("\n")
|
||||||
|
|
||||||
|
def test_v3_getbulk(self):
|
||||||
|
sess = setup_v3();
|
||||||
|
@@ -320,47 +320,47 @@ class BasicTests(unittest.TestCase):
|
||||||
|
netsnmp.Varbind('sysORUpTime'))
|
||||||
|
|
||||||
|
vals = sess.getbulk(2, 8, varlist)
|
||||||
|
- print "v3 sess.getbulk result: ", vals, "\n"
|
||||||
|
+ print("v3 sess.getbulk result: ", vals, "\n")
|
||||||
|
self.assertTrue(len(vals) > 0)
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
- print "\n"
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
+ print("\n")
|
||||||
|
|
||||||
|
def test_v3_set(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v3 set-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v3 set-------------------------------------\n")
|
||||||
|
|
||||||
|
sess = setup_v3();
|
||||||
|
varlist = netsnmp.VarList(
|
||||||
|
netsnmp.Varbind('sysLocation', '0', 'my final destination'))
|
||||||
|
res = sess.set(varlist)
|
||||||
|
- print "v3 sess.set result: ", res, "\n"
|
||||||
|
+ print("v3 sess.set result: ", res, "\n")
|
||||||
|
self.assertEqual(res, 1)
|
||||||
|
|
||||||
|
def test_v3_walk(self):
|
||||||
|
- print "\n"
|
||||||
|
- print "---v3 walk-------------------------------------\n"
|
||||||
|
+ print("\n")
|
||||||
|
+ print("---v3 walk-------------------------------------\n")
|
||||||
|
sess = setup_v3();
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('system'))
|
||||||
|
|
||||||
|
vals = sess.walk(varlist)
|
||||||
|
- print "v3 sess.walk result: ", vals, "\n"
|
||||||
|
+ print("v3 sess.walk result: ", vals, "\n")
|
||||||
|
self.assertTrue(len(vals) > 0)
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print " ", var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print(" ", var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
|
||||||
|
|
||||||
|
class SetTests(unittest.TestCase):
|
||||||
|
"""SNMP set tests for the Net-SNMP Python interface"""
|
||||||
|
def testFuncs(self):
|
||||||
|
"""Test code"""
|
||||||
|
- print "\n-------------- SET Test Start ----------------------------\n"
|
||||||
|
+ print("\n-------------- SET Test Start ----------------------------\n")
|
||||||
|
|
||||||
|
var = netsnmp.Varbind('sysUpTime', '0')
|
||||||
|
res = netsnmp.snmpget(var, **snmp_dest())
|
||||||
|
- print "uptime = ", res[0]
|
||||||
|
+ print("uptime = ", res[0])
|
||||||
|
self.assertEqual(len(res), 1)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -370,19 +370,19 @@ class SetTests(unittest.TestCase):
|
||||||
|
|
||||||
|
var = netsnmp.Varbind('sysUpTime', '0')
|
||||||
|
res = netsnmp.snmpget(var, **snmp_dest())
|
||||||
|
- print "uptime = ", res[0]
|
||||||
|
+ print("uptime = ", res[0])
|
||||||
|
self.assertEqual(len(res), 1)
|
||||||
|
|
||||||
|
var = netsnmp.Varbind('nsCacheEntry')
|
||||||
|
res = netsnmp.snmpgetnext(var, **snmp_dest())
|
||||||
|
- print "var = ", var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print("var = ", var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
self.assertEqual(len(res), 1)
|
||||||
|
|
||||||
|
var.val = 65
|
||||||
|
res = netsnmp.snmpset(var, **snmp_dest())
|
||||||
|
self.assertEqual(res, 1)
|
||||||
|
res = netsnmp.snmpget(var, **snmp_dest())
|
||||||
|
- print "var = ", var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
+ print("var = ", var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
self.assertEqual(len(res), 1)
|
||||||
|
self.assertEqual(res[0], '65');
|
||||||
|
|
||||||
|
@@ -394,7 +394,7 @@ class SetTests(unittest.TestCase):
|
||||||
|
netsnmp.Varbind('.1.3.6.1.6.3.12.1.2.1.9.116.101.115.116', '', 4))
|
||||||
|
res = sess.set(varlist)
|
||||||
|
|
||||||
|
- print "res = ", res
|
||||||
|
+ print("res = ", res)
|
||||||
|
self.assertEqual(res, 1)
|
||||||
|
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('snmpTargetAddrTDomain'),
|
||||||
|
@@ -414,15 +414,15 @@ class SetTests(unittest.TestCase):
|
||||||
|
self.assertEqual(varlist[2].val, '3')
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
- print "\n"
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
+ print("\n")
|
||||||
|
|
||||||
|
varlist = netsnmp.VarList(
|
||||||
|
netsnmp.Varbind('.1.3.6.1.6.3.12.1.2.1.9.116.101.115.116', '', 6))
|
||||||
|
|
||||||
|
res = sess.set(varlist)
|
||||||
|
|
||||||
|
- print "res = ", res
|
||||||
|
+ print("res = ", res)
|
||||||
|
self.assertEqual(res, 1)
|
||||||
|
|
||||||
|
varlist = netsnmp.VarList(netsnmp.Varbind('snmpTargetAddrTDomain'),
|
||||||
|
@@ -436,10 +436,10 @@ class SetTests(unittest.TestCase):
|
||||||
|
self.assertNotEqual(varlist[2].tag, 'snmpTargetAddrRowStatus')
|
||||||
|
|
||||||
|
for var in varlist:
|
||||||
|
- print var.tag, var.iid, "=", var.val, '(', var.type, ')'
|
||||||
|
- print "\n"
|
||||||
|
+ print(var.tag, var.iid, "=", var.val, '(', var.type, ')')
|
||||||
|
+ print("\n")
|
||||||
|
|
||||||
|
- print "\n-------------- SET Test End ----------------------------\n"
|
||||||
|
+ print("\n-------------- SET Test End ----------------------------\n")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
diff -Nurp net-snmp-5.8-orig/python/setup.py net-snmp-5.8/python/setup.py
|
||||||
|
--- net-snmp-5.8-orig/python/setup.py 2018-10-10 09:45:14.951075479 +0000
|
||||||
|
+++ net-snmp-5.8/python/setup.py 2018-10-10 19:38:51.185817022 +0000
|
||||||
|
@@ -9,9 +9,9 @@ intree=0
|
||||||
|
|
||||||
|
args = sys.argv[:]
|
||||||
|
for arg in args:
|
||||||
|
- if string.find(arg,'--basedir=') == 0:
|
||||||
|
- basedir = string.split(arg,'=')[1]
|
||||||
|
- sys.argv.remove(arg)
|
||||||
|
+ if arg.find('--basedir=') == 0:
|
||||||
|
+ basedir = arg.split('=')[1]
|
||||||
|
+ sys.argv.remove(arg)
|
||||||
|
intree=1
|
||||||
|
|
||||||
|
if intree:
|
@ -1,20 +1,20 @@
|
|||||||
diff -uNr net-snmp-5.7.3.orig/agent/mibgroup/host/data_access/swinst_rpm.c net-snmp-5.7.3/agent/mibgroup/host/data_access/swinst_rpm.c
|
diff -Nurp net-snmp-5.8-orig/agent/mibgroup/host/data_access/swinst_rpm.c net-snmp-5.8/agent/mibgroup/host/data_access/swinst_rpm.c
|
||||||
--- net-snmp-5.7.3.orig/agent/mibgroup/host/data_access/swinst_rpm.c 2014-12-08 21:23:22.000000000 +0100
|
--- net-snmp-5.8-orig/agent/mibgroup/host/data_access/swinst_rpm.c 2018-10-10 09:45:14.907075076 +0000
|
||||||
+++ net-snmp-5.7.3/agent/mibgroup/host/data_access/swinst_rpm.c 2017-08-11 00:16:35.232470439 +0200
|
+++ net-snmp-5.8/agent/mibgroup/host/data_access/swinst_rpm.c 2018-10-10 19:31:51.161967195 +0000
|
||||||
@@ -96,8 +96,7 @@
|
@@ -101,8 +101,7 @@ netsnmp_swinst_arch_load( netsnmp_contai
|
||||||
|
const char *g;
|
||||||
rpmdbMatchIterator mi;
|
rpmtd td_name, td_version, td_release, td_group, td_time;
|
||||||
Header h;
|
#else
|
||||||
- char *n, *v, *r, *g;
|
- char *n, *v, *r, *g;
|
||||||
- int32_t *t;
|
- int32_t *t;
|
||||||
+ const char *n, *v, *r, *g;
|
+ const char *n, *v, *r, *g;
|
||||||
|
#endif
|
||||||
time_t install_time;
|
time_t install_time;
|
||||||
size_t date_len;
|
size_t date_len;
|
||||||
int i = 1;
|
@@ -146,14 +145,14 @@ netsnmp_swinst_arch_load( netsnmp_contai
|
||||||
@@ -119,11 +118,11 @@
|
install_time = rpmtdGetNumber(td_time);
|
||||||
CONTAINER_INSERT(container, entry);
|
g = rpmtdGetString(td_group);
|
||||||
|
#else
|
||||||
h = headerLink( h );
|
|
||||||
- headerGetEntry( h, RPMTAG_NAME, NULL, (void**)&n, NULL);
|
- headerGetEntry( h, RPMTAG_NAME, NULL, (void**)&n, NULL);
|
||||||
- headerGetEntry( h, RPMTAG_VERSION, NULL, (void**)&v, NULL);
|
- headerGetEntry( h, RPMTAG_VERSION, NULL, (void**)&v, NULL);
|
||||||
- headerGetEntry( h, RPMTAG_RELEASE, NULL, (void**)&r, NULL);
|
- headerGetEntry( h, RPMTAG_RELEASE, NULL, (void**)&r, NULL);
|
||||||
@ -25,21 +25,17 @@ diff -uNr net-snmp-5.7.3.orig/agent/mibgroup/host/data_access/swinst_rpm.c net-s
|
|||||||
+ r = headerGetString( h, RPMTAG_RELEASE);
|
+ r = headerGetString( h, RPMTAG_RELEASE);
|
||||||
+ g = headerGetString( h, RPMTAG_GROUP);
|
+ g = headerGetString( h, RPMTAG_GROUP);
|
||||||
+ install_time = headerGetNumber( h, RPMTAG_INSTALLTIME);
|
+ install_time = headerGetNumber( h, RPMTAG_INSTALLTIME);
|
||||||
|
+
|
||||||
entry->swName_len = snprintf( entry->swName, sizeof(entry->swName),
|
entry->swName_len = snprintf( entry->swName, sizeof(entry->swName),
|
||||||
"%s-%s-%s", n, v, r);
|
"%s-%s-%s", n, v, r);
|
||||||
@@ -133,7 +132,6 @@
|
|
||||||
? 2 /* operatingSystem */
|
|
||||||
: 4; /* application */
|
|
||||||
|
|
||||||
- install_time = *t;
|
- install_time = *t;
|
||||||
dt = date_n_time( &install_time, &date_len );
|
#endif
|
||||||
if (date_len != 8 && date_len != 11) {
|
entry->swType = (g && NULL != strstr( g, "System Environment"))
|
||||||
snmp_log(LOG_ERR, "Bogus length from date_n_time for %s", entry->swName);
|
? 2 /* operatingSystem */
|
||||||
diff -uNr net-snmp-5.7.3.orig/agent/mibgroup/host/hr_swinst.c net-snmp-5.7.3/agent/mibgroup/host/hr_swinst.c
|
diff -Nurp net-snmp-5.8-orig/agent/mibgroup/host/hr_swinst.c net-snmp-5.8/agent/mibgroup/host/hr_swinst.c
|
||||||
--- net-snmp-5.7.3.orig/agent/mibgroup/host/hr_swinst.c 2014-12-08 21:23:22.000000000 +0100
|
--- net-snmp-5.8-orig/agent/mibgroup/host/hr_swinst.c 2018-10-10 09:45:14.907075076 +0000
|
||||||
+++ net-snmp-5.7.3/agent/mibgroup/host/hr_swinst.c 2017-08-11 00:17:07.488544492 +0200
|
+++ net-snmp-5.8/agent/mibgroup/host/hr_swinst.c 2018-10-10 19:34:48.935596621 +0000
|
||||||
@@ -484,9 +484,9 @@
|
@@ -479,9 +479,9 @@ var_hrswinst(struct variable * vp,
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
# ifdef HAVE_LIBRPM
|
# ifdef HAVE_LIBRPM
|
||||||
@ -52,7 +48,7 @@ diff -uNr net-snmp-5.7.3.orig/agent/mibgroup/host/hr_swinst.c net-snmp-5.7.3/age
|
|||||||
long_return = 2; /* operatingSystem */
|
long_return = 2; /* operatingSystem */
|
||||||
else
|
else
|
||||||
long_return = 4; /* applcation */
|
long_return = 4; /* applcation */
|
||||||
@@ -503,9 +503,8 @@
|
@@ -498,9 +498,8 @@ var_hrswinst(struct variable * vp,
|
||||||
case HRSWINST_DATE:
|
case HRSWINST_DATE:
|
||||||
{
|
{
|
||||||
#ifdef HAVE_LIBRPM
|
#ifdef HAVE_LIBRPM
|
||||||
@ -64,16 +60,16 @@ diff -uNr net-snmp-5.7.3.orig/agent/mibgroup/host/hr_swinst.c net-snmp-5.7.3/age
|
|||||||
ret = date_n_time(&installTime, var_len);
|
ret = date_n_time(&installTime, var_len);
|
||||||
} else {
|
} else {
|
||||||
ret = date_n_time(NULL, var_len);
|
ret = date_n_time(NULL, var_len);
|
||||||
@@ -665,7 +664,7 @@
|
@@ -660,7 +659,7 @@ Save_HR_SW_info(int ix)
|
||||||
if (1 <= ix && ix <= swi->swi_nrec && ix != swi->swi_prevx) {
|
if (1 <= ix && ix <= swi->swi_nrec && ix != swi->swi_prevx) {
|
||||||
int offset;
|
int offset;
|
||||||
Header h;
|
Header h;
|
||||||
- char *n, *v, *r;
|
- char *n, *v, *r;
|
||||||
+ const char *n, *v, *r;
|
+ const char *n, *v, *r;
|
||||||
|
|
||||||
offset = swi->swi_recs[ix - 1];
|
offset = swi->swi_recs[ix - 1];
|
||||||
|
|
||||||
@@ -690,11 +689,9 @@
|
@@ -685,11 +684,9 @@ Save_HR_SW_info(int ix)
|
||||||
swi->swi_h = h;
|
swi->swi_h = h;
|
||||||
swi->swi_prevx = ix;
|
swi->swi_prevx = ix;
|
||||||
|
|
@ -1,7 +1,6 @@
|
|||||||
Index: net-snmp-5.7.2/net-snmp-config.in
|
diff -Nurp net-snmp-5.8-orig/net-snmp-config.in net-snmp-5.8/net-snmp-config.in
|
||||||
===================================================================
|
--- net-snmp-5.8-orig/net-snmp-config.in 2018-10-10 09:45:14.947075442 +0000
|
||||||
--- net-snmp-5.7.2.orig/net-snmp-config.in
|
+++ net-snmp-5.8/net-snmp-config.in 2018-10-10 09:48:04.792631474 +0000
|
||||||
+++ net-snmp-5.7.2/net-snmp-config.in
|
|
||||||
@@ -41,6 +41,14 @@ count()
|
@@ -41,6 +41,14 @@ count()
|
||||||
echo $#
|
echo $#
|
||||||
}
|
}
|
||||||
@ -17,7 +16,7 @@ Index: net-snmp-5.7.2/net-snmp-config.in
|
|||||||
prefix=@prefix@
|
prefix=@prefix@
|
||||||
exec_prefix=@exec_prefix@
|
exec_prefix=@exec_prefix@
|
||||||
includedir=@includedir@
|
includedir=@includedir@
|
||||||
@@ -138,9 +146,11 @@ else
|
@@ -140,9 +148,11 @@ else
|
||||||
;;
|
;;
|
||||||
#################################################### compile
|
#################################################### compile
|
||||||
--base-cflags)
|
--base-cflags)
|
||||||
@ -29,7 +28,7 @@ Index: net-snmp-5.7.2/net-snmp-config.in
|
|||||||
echo @CFLAGS@ @DEVFLAGS@ @CPPFLAGS@ -I. -I${NSC_INCLUDEDIR}
|
echo @CFLAGS@ @DEVFLAGS@ @CPPFLAGS@ -I. -I${NSC_INCLUDEDIR}
|
||||||
;;
|
;;
|
||||||
--srcdir)
|
--srcdir)
|
||||||
@@ -151,6 +161,7 @@ else
|
@@ -153,6 +163,7 @@ else
|
||||||
echo $NSC_LIBDIR
|
echo $NSC_LIBDIR
|
||||||
;;
|
;;
|
||||||
--ldflags|--ld*)
|
--ldflags|--ld*)
|
||||||
@ -37,7 +36,7 @@ Index: net-snmp-5.7.2/net-snmp-config.in
|
|||||||
echo $NSC_LDFLAGS
|
echo $NSC_LDFLAGS
|
||||||
;;
|
;;
|
||||||
--build-lib-dirs)
|
--build-lib-dirs)
|
||||||
@@ -188,29 +199,37 @@ else
|
@@ -190,29 +201,37 @@ else
|
||||||
#################################################### client lib
|
#################################################### client lib
|
||||||
--libs)
|
--libs)
|
||||||
# use this one == --netsnmp-libs + --external-libs
|
# use this one == --netsnmp-libs + --external-libs
|
||||||
@ -75,7 +74,7 @@ Index: net-snmp-5.7.2/net-snmp-config.in
|
|||||||
echo $NSC_LDFLAGS $NSC_LMIBLIBS $NSC_LAGENTLIBS $NSC_LNETSNMPLIBS $NSC_LIBS
|
echo $NSC_LDFLAGS $NSC_LMIBLIBS $NSC_LAGENTLIBS $NSC_LNETSNMPLIBS $NSC_LIBS
|
||||||
;;
|
;;
|
||||||
####################################################
|
####################################################
|
||||||
@@ -236,6 +255,7 @@ else
|
@@ -238,6 +257,7 @@ else
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
--compile-subagent)
|
--compile-subagent)
|
41
net-snmp-5.8-netgroups.patch
Normal file
41
net-snmp-5.8-netgroups.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
diff -Nurp net-snmp-5.8-orig/configure.d/config_os_functions net-snmp-5.8/configure.d/config_os_functions
|
||||||
|
--- net-snmp-5.8-orig/configure.d/config_os_functions 2018-10-10 09:45:14.899075003 +0000
|
||||||
|
+++ net-snmp-5.8/configure.d/config_os_functions 2018-10-10 10:06:55.326988809 +0000
|
||||||
|
@@ -37,11 +37,12 @@ AC_CHECK_FUNCS([rand random srand sran
|
||||||
|
|
||||||
|
# Library:
|
||||||
|
AC_CHECK_FUNCS([asprintf ] dnl
|
||||||
|
- [closedir fgetc_unlocked flockfile ] dnl
|
||||||
|
- [fork funlockfile getipnodebyname ] dnl
|
||||||
|
- [gettimeofday if_nametoindex mkstemp ] dnl
|
||||||
|
- [opendir readdir regcomp ] dnl
|
||||||
|
- [setenv setitimer setlocale ] dnl
|
||||||
|
+ [closedir endnetgrent fgetc_unlocked ] dnl
|
||||||
|
+ [flockfile fork funlockfile ] dnl
|
||||||
|
+ [getipnodebyname getnetgrent gettimeofday ] dnl
|
||||||
|
+ [if_nametoindex mkstemp opendir ] dnl
|
||||||
|
+ [readdir regcomp setenv ] dnl
|
||||||
|
+ [setitimer setlocale setnetgrent ] dnl
|
||||||
|
[setsid snprintf strcasestr ] dnl
|
||||||
|
[strdup strerror strncasecmp ] dnl
|
||||||
|
[sysconf times vsnprintf ] )
|
||||||
|
diff -Nurp net-snmp-5.8-orig/man/snmpd.conf.5.def net-snmp-5.8/man/snmpd.conf.5.def
|
||||||
|
--- net-snmp-5.8-orig/man/snmpd.conf.5.def 2018-10-10 09:45:14.951075479 +0000
|
||||||
|
+++ net-snmp-5.8/man/snmpd.conf.5.def 2018-10-10 10:10:44.057084311 +0000
|
||||||
|
@@ -390,7 +390,15 @@ map an SNMPv1 or SNMPv2c community strin
|
||||||
|
a particular range of source addresses, or globally (\fI"default"\fR).
|
||||||
|
A restricted source can either be a specific hostname (or address), or
|
||||||
|
a subnet - represented as IP/MASK (e.g. 10.10.10.0/255.255.255.0), or
|
||||||
|
-IP/BITS (e.g. 10.10.10.0/24), or the IPv6 equivalents.
|
||||||
|
+IP/BITS (e.g. 10.10.10.0/24), or the IPv6 equivalents. It is also possible
|
||||||
|
+to reference a specific \fInetgroup\fR starting with an '@' character (e.g.
|
||||||
|
+@adminhosts). The \fInetgroup\fR lookup is running through the NSS (Name
|
||||||
|
+Services Switch) making it possible to define the group locally or via
|
||||||
|
+NIS/LDAP.
|
||||||
|
+.IP
|
||||||
|
+Note: The hostname DNS lookup and \fInetgroup\fR resolution is done only
|
||||||
|
+during snmpd start or reload.
|
||||||
|
+.IP
|
||||||
|
A restriction preceded by an exclamation mark (!) denies access from
|
||||||
|
that address or subnet, e.g., !10.10.10.0/24 denies requests from
|
||||||
|
that sources in that subnet. Deny restrictions must be before
|
@ -1,8 +1,7 @@
|
|||||||
Index: net-snmp-5.7.2/agent/Makefile.in
|
diff -Nurp net-snmp-5.8-orig/agent/Makefile.in net-snmp-5.8/agent/Makefile.in
|
||||||
===================================================================
|
--- net-snmp-5.8-orig/agent/Makefile.in 2018-10-10 20:12:33.288508471 +0000
|
||||||
--- net-snmp-5.7.2.orig/agent/Makefile.in
|
+++ net-snmp-5.8/agent/Makefile.in 2018-10-10 20:12:13.236322553 +0000
|
||||||
+++ net-snmp-5.7.2/agent/Makefile.in
|
@@ -297,7 +297,7 @@ getmibstat.o: mibgroup/kernel_sunos5.c
|
||||||
@@ -294,7 +294,7 @@ getmibstat.o: mibgroup/kernel_sunos5.c
|
|
||||||
$(CC) $(CFLAGS) -o $@ -D_GETMIBSTAT_TEST -DDODEBUG -c $?
|
$(CC) $(CFLAGS) -o $@ -D_GETMIBSTAT_TEST -DDODEBUG -c $?
|
||||||
|
|
||||||
snmpd$(EXEEXT): ${LAGENTOBJS} $(USELIBS) $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LIBTARG)
|
snmpd$(EXEEXT): ${LAGENTOBJS} $(USELIBS) $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LIBTARG)
|
||||||
@ -11,11 +10,10 @@ Index: net-snmp-5.7.2/agent/Makefile.in
|
|||||||
|
|
||||||
libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION): ${LLIBAGENTOBJS} $(USELIBS)
|
libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION): ${LLIBAGENTOBJS} $(USELIBS)
|
||||||
$(LIB_LD_CMD) $(AGENTLIB) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} @LD_NO_UNDEFINED@ $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS) @AGENTLIBS@
|
$(LIB_LD_CMD) $(AGENTLIB) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} @LD_NO_UNDEFINED@ $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS) @AGENTLIBS@
|
||||||
Index: net-snmp-5.7.2/apps/Makefile.in
|
diff -Nurp net-snmp-5.8-orig/apps/Makefile.in net-snmp-5.8/apps/Makefile.in
|
||||||
===================================================================
|
--- net-snmp-5.8-orig/apps/Makefile.in 2018-10-10 20:10:23.983309589 +0000
|
||||||
--- net-snmp-5.7.2.orig/apps/Makefile.in
|
+++ net-snmp-5.8/apps/Makefile.in 2018-10-10 20:11:50.172108708 +0000
|
||||||
+++ net-snmp-5.7.2/apps/Makefile.in
|
@@ -183,7 +183,7 @@ snmptest$(EXEEXT): snmptest.$(OSUFFIX
|
||||||
@@ -170,7 +170,7 @@ snmptest$(EXEEXT): snmptest.$(OSUFFIX
|
|
||||||
$(LINK) ${CFLAGS} -o $@ snmptest.$(OSUFFIX) ${LDFLAGS} ${LIBS}
|
$(LINK) ${CFLAGS} -o $@ snmptest.$(OSUFFIX) ${LDFLAGS} ${LIBS}
|
||||||
|
|
||||||
snmptrapd$(EXEEXT): $(TRAPD_OBJECTS) $(USETRAPLIBS) $(INSTALLLIBS)
|
snmptrapd$(EXEEXT): $(TRAPD_OBJECTS) $(USETRAPLIBS) $(INSTALLLIBS)
|
@ -1,6 +1,6 @@
|
|||||||
diff -Nurp net-snmp-5.7.3.orig/apps/snmpstatus.c net-snmp-5.7.3/apps/snmpstatus.c
|
diff -Nurp net-snmp-5.8-orig/apps/snmpstatus.c net-snmp-5.8/apps/snmpstatus.c
|
||||||
--- net-snmp-5.7.3.orig/apps/snmpstatus.c 2015-07-14 22:06:08.938851077 +0200
|
--- net-snmp-5.8-orig/apps/snmpstatus.c 2018-10-10 09:45:14.955075516 +0000
|
||||||
+++ net-snmp-5.7.3/apps/snmpstatus.c 2015-07-14 22:06:23.905980889 +0200
|
+++ net-snmp-5.8/apps/snmpstatus.c 2018-10-10 10:15:16.131576910 +0000
|
||||||
@@ -96,6 +96,15 @@ size_t length_ipOutRequests =
|
@@ -96,6 +96,15 @@ size_t length_ipOutRequests =
|
||||||
|
|
||||||
#define NETSNMP_DS_APP_DONT_FIX_PDUS 0
|
#define NETSNMP_DS_APP_DONT_FIX_PDUS 0
|
||||||
@ -53,14 +53,14 @@ diff -Nurp net-snmp-5.7.3.orig/apps/snmpstatus.c net-snmp-5.7.3/apps/snmpstatus.
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -152,7 +183,7 @@ main(int argc, char *argv[])
|
@@ -154,7 +185,7 @@ main(int argc, char *argv[])
|
||||||
/*
|
/*
|
||||||
* get the common command line arguments
|
* get the common command line arguments
|
||||||
*/
|
*/
|
||||||
- switch (snmp_parse_args(argc, argv, &session, "C:", &optProc)) {
|
- switch (snmp_parse_args(argc, argv, &session, "C:", &optProc)) {
|
||||||
+ switch (snmp_parse_args(argc, argv, &session, "C:S:", &optProc)) {
|
+ switch (snmp_parse_args(argc, argv, &session, "C:S:", &optProc)) {
|
||||||
case NETSNMP_PARSE_ARGS_ERROR:
|
case NETSNMP_PARSE_ARGS_ERROR:
|
||||||
exit(1);
|
goto out;
|
||||||
case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
|
case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
|
||||||
@@ -185,8 +216,10 @@ main(int argc, char *argv[])
|
@@ -185,8 +216,10 @@ main(int argc, char *argv[])
|
||||||
pdu = snmp_pdu_create(SNMP_MSG_GET);
|
pdu = snmp_pdu_create(SNMP_MSG_GET);
|
||||||
@ -75,7 +75,7 @@ diff -Nurp net-snmp-5.7.3.orig/apps/snmpstatus.c net-snmp-5.7.3/apps/snmpstatus.
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* do the request
|
* do the request
|
||||||
@@ -278,6 +311,10 @@ main(int argc, char *argv[])
|
@@ -279,6 +312,10 @@ main(int argc, char *argv[])
|
||||||
if (response)
|
if (response)
|
||||||
snmp_free_pdu(response);
|
snmp_free_pdu(response);
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ diff -Nurp net-snmp-5.7.3.orig/apps/snmpstatus.c net-snmp-5.7.3/apps/snmpstatus.
|
|||||||
/*
|
/*
|
||||||
* create PDU for GET request and add object names to request
|
* create PDU for GET request and add object names to request
|
||||||
*/
|
*/
|
||||||
@@ -375,11 +412,11 @@ main(int argc, char *argv[])
|
@@ -386,11 +423,11 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
printf("Interfaces: %d, Recv/Trans packets: %d/%d | IP: %d/%d\n",
|
printf("Interfaces: %d, Recv/Trans packets: %d/%d | IP: %d/%d\n",
|
||||||
interfaces, ipackets, opackets, ipin, ipout);
|
interfaces, ipackets, opackets, ipin, ipout);
|
||||||
@ -98,11 +98,11 @@ diff -Nurp net-snmp-5.7.3.orig/apps/snmpstatus.c net-snmp-5.7.3/apps/snmpstatus.
|
|||||||
-
|
-
|
||||||
+ done:
|
+ done:
|
||||||
snmp_close(ss);
|
snmp_close(ss);
|
||||||
SOCK_CLEANUP;
|
|
||||||
return exitval;
|
out:
|
||||||
diff -Nurp net-snmp-5.7.3.orig/man/snmpstatus.1.def net-snmp-5.7.3/man/snmpstatus.1.def
|
diff -Nurp net-snmp-5.8-orig/man/snmpstatus.1.def net-snmp-5.8/man/snmpstatus.1.def
|
||||||
--- net-snmp-5.7.3.orig/man/snmpstatus.1.def 2015-07-14 22:06:08.838850210 +0200
|
--- net-snmp-5.8-orig/man/snmpstatus.1.def 2018-10-10 09:45:14.951075479 +0000
|
||||||
+++ net-snmp-5.7.3/man/snmpstatus.1.def 2015-07-14 22:13:19.891588792 +0200
|
+++ net-snmp-5.8/man/snmpstatus.1.def 2018-10-10 10:15:16.131576910 +0000
|
||||||
@@ -32,7 +32,7 @@
|
@@ -32,7 +32,7 @@
|
||||||
snmpstatus - retrieves a fixed set of management information from a network entity
|
snmpstatus - retrieves a fixed set of management information from a network entity
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
3
net-snmp-5.8.tar.gz
Normal file
3
net-snmp-5.8.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b2fc3500840ebe532734c4786b0da4ef0a5f67e51ef4c86b3345d697e4976adf
|
||||||
|
size 6591680
|
@ -1,505 +0,0 @@
|
|||||||
Index: net-snmp-5.7.3/python/setup.py
|
|
||||||
===================================================================
|
|
||||||
--- net-snmp-5.7.3.orig/python/setup.py
|
|
||||||
+++ net-snmp-5.7.3/python/setup.py
|
|
||||||
@@ -9,9 +9,9 @@ intree=0
|
|
||||||
|
|
||||||
args = sys.argv[:]
|
|
||||||
for arg in args:
|
|
||||||
- if string.find(arg,'--basedir=') == 0:
|
|
||||||
- basedir = string.split(arg,'=')[1]
|
|
||||||
- sys.argv.remove(arg)
|
|
||||||
+ if arg.find('--basedir=') == 0:
|
|
||||||
+ basedir = arg.split('=')[1]
|
|
||||||
+ sys.argv.remove(arg)
|
|
||||||
intree=1
|
|
||||||
|
|
||||||
if intree:
|
|
||||||
Index: net-snmp-5.7.3/python/netsnmp/client.py
|
|
||||||
===================================================================
|
|
||||||
--- net-snmp-5.7.3.orig/python/netsnmp/client.py
|
|
||||||
+++ net-snmp-5.7.3/python/netsnmp/client.py
|
|
||||||
@@ -1,3 +1,4 @@
|
|
||||||
+from __future__ import print_function
|
|
||||||
import client_intf
|
|
||||||
import string
|
|
||||||
import re
|
|
||||||
@@ -35,12 +36,12 @@ def _parse_session_args(kargs):
|
|
||||||
'TheirHostname':'',
|
|
||||||
'TrustCert':''
|
|
||||||
}
|
|
||||||
- keys = kargs.keys()
|
|
||||||
+ keys = list(kargs.keys())
|
|
||||||
for key in keys:
|
|
||||||
- if sessArgs.has_key(key):
|
|
||||||
+ if key in sessArgs:
|
|
||||||
sessArgs[key] = kargs[key]
|
|
||||||
else:
|
|
||||||
- print >>stderr, "ERROR: unknown key", key
|
|
||||||
+ print("ERROR: unknown key", key, file=stderr)
|
|
||||||
return sessArgs
|
|
||||||
|
|
||||||
def STR(obj):
|
|
||||||
@@ -127,7 +128,7 @@ class Session(object):
|
|
||||||
|
|
||||||
sess_args = _parse_session_args(args)
|
|
||||||
|
|
||||||
- for k,v in sess_args.items():
|
|
||||||
+ for k,v in list(sess_args.items()):
|
|
||||||
self.__dict__[k] = v
|
|
||||||
|
|
||||||
|
|
||||||
Index: net-snmp-5.7.3/python/netsnmp/tests/test.py
|
|
||||||
===================================================================
|
|
||||||
--- net-snmp-5.7.3.orig/python/netsnmp/tests/test.py
|
|
||||||
+++ net-snmp-5.7.3/python/netsnmp/tests/test.py
|
|
||||||
@@ -8,7 +8,7 @@ import time
|
|
||||||
|
|
||||||
class BasicTests(unittest.TestCase):
|
|
||||||
def testFuncs(self):
|
|
||||||
- print ""
|
|
||||||
+ print("")
|
|
||||||
var = netsnmp.Varbind('sysDescr.0')
|
|
||||||
var = netsnmp.Varbind('sysDescr','0')
|
|
||||||
var = netsnmp.Varbind(
|
|
||||||
@@ -19,67 +19,67 @@ class BasicTests(unittest.TestCase):
|
|
||||||
|
|
||||||
var = netsnmp.Varbind('.1.3.6.1.2.1.1.1','0')
|
|
||||||
|
|
||||||
- print "---v1 GET tests -------------------------------------\n"
|
|
||||||
+ print("---v1 GET tests -------------------------------------\n")
|
|
||||||
res = netsnmp.snmpget(var,
|
|
||||||
Version = 1,
|
|
||||||
DestHost='localhost',
|
|
||||||
Community='public')
|
|
||||||
|
|
||||||
- print "v1 snmpget result: ", res, "\n"
|
|
||||||
+ print("v1 snmpget result: ", res, "\n")
|
|
||||||
|
|
||||||
- print "v1 get var: ", var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print("v1 get var: ", var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
- print "---v1 GETNEXT tests-------------------------------------\n"
|
|
||||||
+ print("---v1 GETNEXT tests-------------------------------------\n")
|
|
||||||
res = netsnmp.snmpgetnext(var,
|
|
||||||
Version = 1,
|
|
||||||
DestHost='localhost',
|
|
||||||
Community='public')
|
|
||||||
|
|
||||||
- print "v1 snmpgetnext result: ", res, "\n"
|
|
||||||
+ print("v1 snmpgetnext result: ", res, "\n")
|
|
||||||
|
|
||||||
- print "v1 getnext var: ", var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print("v1 getnext var: ", var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
- print "---v1 SET tests-------------------------------------\n"
|
|
||||||
+ print("---v1 SET tests-------------------------------------\n")
|
|
||||||
var = netsnmp.Varbind('sysLocation','0', 'my new location')
|
|
||||||
res = netsnmp.snmpset(var,
|
|
||||||
Version = 1,
|
|
||||||
DestHost='localhost',
|
|
||||||
Community='public')
|
|
||||||
|
|
||||||
- print "v1 snmpset result: ", res, "\n"
|
|
||||||
+ print("v1 snmpset result: ", res, "\n")
|
|
||||||
|
|
||||||
- print "v1 set var: ", var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print("v1 set var: ", var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
- print "---v1 walk tests-------------------------------------\n"
|
|
||||||
+ print("---v1 walk tests-------------------------------------\n")
|
|
||||||
vars = netsnmp.VarList(netsnmp.Varbind('system'))
|
|
||||||
|
|
||||||
- print "v1 varlist walk in: "
|
|
||||||
+ print("v1 varlist walk in: ")
|
|
||||||
for var in vars:
|
|
||||||
- print " ",var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print(" ",var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
res = netsnmp.snmpwalk(vars,
|
|
||||||
Version = 1,
|
|
||||||
DestHost='localhost',
|
|
||||||
Community='public')
|
|
||||||
- print "v1 snmpwalk result: ", res, "\n"
|
|
||||||
+ print("v1 snmpwalk result: ", res, "\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
|
|
||||||
- print "---v1 walk 2-------------------------------------\n"
|
|
||||||
+ print("---v1 walk 2-------------------------------------\n")
|
|
||||||
|
|
||||||
- print "v1 varbind walk in: "
|
|
||||||
+ print("v1 varbind walk in: ")
|
|
||||||
var = netsnmp.Varbind('system')
|
|
||||||
res = netsnmp.snmpwalk(var,
|
|
||||||
Version = 1,
|
|
||||||
DestHost='localhost',
|
|
||||||
Community='public')
|
|
||||||
- print "v1 snmpwalk result (should be = orig): ", res, "\n"
|
|
||||||
+ print("v1 snmpwalk result (should be = orig): ", res, "\n")
|
|
||||||
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
- print "---v1 multi-varbind test-------------------------------------\n"
|
|
||||||
+ print("---v1 multi-varbind test-------------------------------------\n")
|
|
||||||
sess = netsnmp.Session(Version=1,
|
|
||||||
DestHost='localhost',
|
|
||||||
Community='public')
|
|
||||||
@@ -88,16 +88,16 @@ class BasicTests(unittest.TestCase):
|
|
||||||
netsnmp.Varbind('sysContact', 0),
|
|
||||||
netsnmp.Varbind('sysLocation', 0))
|
|
||||||
vals = sess.get(vars)
|
|
||||||
- print "v1 sess.get result: ", vals, "\n"
|
|
||||||
+ print("v1 sess.get result: ", vals, "\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
vals = sess.getnext(vars)
|
|
||||||
- print "v1 sess.getnext result: ", vals, "\n"
|
|
||||||
+ print("v1 sess.getnext result: ", vals, "\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
vars = netsnmp.VarList(netsnmp.Varbind('sysUpTime'),
|
|
||||||
netsnmp.Varbind('sysORLastChange'),
|
|
||||||
@@ -106,28 +106,28 @@ class BasicTests(unittest.TestCase):
|
|
||||||
netsnmp.Varbind('sysORUpTime'))
|
|
||||||
|
|
||||||
vals = sess.getbulk(2, 8, vars)
|
|
||||||
- print "v1 sess.getbulk result: ", vals, "\n"
|
|
||||||
+ print("v1 sess.getbulk result: ", vals, "\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
- print "---v1 set2-------------------------------------\n"
|
|
||||||
+ print("---v1 set2-------------------------------------\n")
|
|
||||||
|
|
||||||
vars = netsnmp.VarList(
|
|
||||||
netsnmp.Varbind('sysLocation', '0', 'my newer location'))
|
|
||||||
res = sess.set(vars)
|
|
||||||
- print "v1 sess.set result: ", res, "\n"
|
|
||||||
+ print("v1 sess.set result: ", res, "\n")
|
|
||||||
|
|
||||||
- print "---v1 walk3-------------------------------------\n"
|
|
||||||
+ print("---v1 walk3-------------------------------------\n")
|
|
||||||
vars = netsnmp.VarList(netsnmp.Varbind('system'))
|
|
||||||
|
|
||||||
vals = sess.walk(vars)
|
|
||||||
- print "v1 sess.walk result: ", vals, "\n"
|
|
||||||
+ print("v1 sess.walk result: ", vals, "\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print " ",var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print(" ",var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
- print "---v2c get-------------------------------------\n"
|
|
||||||
+ print("---v2c get-------------------------------------\n")
|
|
||||||
|
|
||||||
sess = netsnmp.Session(Version=2,
|
|
||||||
DestHost='localhost',
|
|
||||||
@@ -140,22 +140,22 @@ class BasicTests(unittest.TestCase):
|
|
||||||
netsnmp.Varbind('sysContact', 0),
|
|
||||||
netsnmp.Varbind('sysLocation', 0))
|
|
||||||
vals = sess.get(vars)
|
|
||||||
- print "v2 sess.get result: ", vals, "\n"
|
|
||||||
+ print("v2 sess.get result: ", vals, "\n")
|
|
||||||
|
|
||||||
- print "---v2c getnext-------------------------------------\n"
|
|
||||||
+ print("---v2c getnext-------------------------------------\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
- print "\n"
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
+ print("\n")
|
|
||||||
|
|
||||||
vals = sess.getnext(vars)
|
|
||||||
- print "v2 sess.getnext result: ", vals, "\n"
|
|
||||||
+ print("v2 sess.getnext result: ", vals, "\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
- print "\n"
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
+ print("\n")
|
|
||||||
|
|
||||||
- print "---v2c getbulk-------------------------------------\n"
|
|
||||||
+ print("---v2c getbulk-------------------------------------\n")
|
|
||||||
|
|
||||||
vars = netsnmp.VarList(netsnmp.Varbind('sysUpTime'),
|
|
||||||
netsnmp.Varbind('sysORLastChange'),
|
|
||||||
@@ -164,30 +164,30 @@ class BasicTests(unittest.TestCase):
|
|
||||||
netsnmp.Varbind('sysORUpTime'))
|
|
||||||
|
|
||||||
vals = sess.getbulk(2, 8, vars)
|
|
||||||
- print "v2 sess.getbulk result: ", vals, "\n"
|
|
||||||
+ print("v2 sess.getbulk result: ", vals, "\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
- print "\n"
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
+ print("\n")
|
|
||||||
|
|
||||||
- print "---v2c set-------------------------------------\n"
|
|
||||||
+ print("---v2c set-------------------------------------\n")
|
|
||||||
|
|
||||||
vars = netsnmp.VarList(
|
|
||||||
netsnmp.Varbind('sysLocation','0','my even newer location'))
|
|
||||||
|
|
||||||
res = sess.set(vars)
|
|
||||||
- print "v2 sess.set result: ", res, "\n"
|
|
||||||
+ print("v2 sess.set result: ", res, "\n")
|
|
||||||
|
|
||||||
- print "---v2c walk-------------------------------------\n"
|
|
||||||
+ print("---v2c walk-------------------------------------\n")
|
|
||||||
vars = netsnmp.VarList(netsnmp.Varbind('system'))
|
|
||||||
|
|
||||||
vals = sess.walk(vars)
|
|
||||||
- print "v2 sess.walk result: ", vals, "\n"
|
|
||||||
+ print("v2 sess.walk result: ", vals, "\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print " ",var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print(" ",var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
- print "---v3 setup-------------------------------------\n"
|
|
||||||
+ print("---v3 setup-------------------------------------\n")
|
|
||||||
sess = netsnmp.Session(Version=3,
|
|
||||||
DestHost='localhost',
|
|
||||||
SecLevel='authPriv',
|
|
||||||
@@ -200,22 +200,22 @@ class BasicTests(unittest.TestCase):
|
|
||||||
vars = netsnmp.VarList(netsnmp.Varbind('sysUpTime', 0),
|
|
||||||
netsnmp.Varbind('sysContact', 0),
|
|
||||||
netsnmp.Varbind('sysLocation', 0))
|
|
||||||
- print "---v3 get-------------------------------------\n"
|
|
||||||
+ print("---v3 get-------------------------------------\n")
|
|
||||||
vals = sess.get(vars)
|
|
||||||
- print "v3 sess.get result: ", vals, "\n"
|
|
||||||
+ print("v3 sess.get result: ", vals, "\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
- print "\n"
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
+ print("\n")
|
|
||||||
|
|
||||||
- print "---v3 getnext-------------------------------------\n"
|
|
||||||
+ print("---v3 getnext-------------------------------------\n")
|
|
||||||
|
|
||||||
vals = sess.getnext(vars)
|
|
||||||
- print "v3 sess.getnext result: ", vals, "\n"
|
|
||||||
+ print("v3 sess.getnext result: ", vals, "\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
- print "\n"
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
+ print("\n")
|
|
||||||
|
|
||||||
vars = netsnmp.VarList(netsnmp.Varbind('sysUpTime'),
|
|
||||||
netsnmp.Varbind('sysORLastChange'),
|
|
||||||
@@ -224,37 +224,37 @@ class BasicTests(unittest.TestCase):
|
|
||||||
netsnmp.Varbind('sysORUpTime'))
|
|
||||||
|
|
||||||
vals = sess.getbulk(2, 8, vars)
|
|
||||||
- print "v3 sess.getbulk result: ", vals, "\n"
|
|
||||||
+ print("v3 sess.getbulk result: ", vals, "\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
- print "\n"
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
+ print("\n")
|
|
||||||
|
|
||||||
- print "---v3 set-------------------------------------\n"
|
|
||||||
+ print("---v3 set-------------------------------------\n")
|
|
||||||
|
|
||||||
vars = netsnmp.VarList(
|
|
||||||
netsnmp.Varbind('sysLocation','0', 'my final destination'))
|
|
||||||
res = sess.set(vars)
|
|
||||||
- print "v3 sess.set result: ", res, "\n"
|
|
||||||
+ print("v3 sess.set result: ", res, "\n")
|
|
||||||
|
|
||||||
- print "---v3 walk-------------------------------------\n"
|
|
||||||
+ print("---v3 walk-------------------------------------\n")
|
|
||||||
vars = netsnmp.VarList(netsnmp.Varbind('system'))
|
|
||||||
|
|
||||||
vals = sess.walk(vars)
|
|
||||||
- print "v3 sess.walk result: ", vals, "\n"
|
|
||||||
+ print("v3 sess.walk result: ", vals, "\n")
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print " ",var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print(" ",var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
|
|
||||||
class SetTests(unittest.TestCase):
|
|
||||||
def testFuncs(self):
|
|
||||||
- print "\n-------------- SET Test Start ----------------------------\n"
|
|
||||||
+ print("\n-------------- SET Test Start ----------------------------\n")
|
|
||||||
|
|
||||||
var = netsnmp.Varbind('sysUpTime','0')
|
|
||||||
res = netsnmp.snmpget(var, Version = 1, DestHost='localhost',
|
|
||||||
Community='public')
|
|
||||||
- print "uptime = ", res[0]
|
|
||||||
+ print("uptime = ", res[0])
|
|
||||||
|
|
||||||
|
|
||||||
var = netsnmp.Varbind('versionRestartAgent','0', 1)
|
|
||||||
@@ -264,19 +264,19 @@ class SetTests(unittest.TestCase):
|
|
||||||
var = netsnmp.Varbind('sysUpTime','0')
|
|
||||||
res = netsnmp.snmpget(var, Version = 1, DestHost='localhost',
|
|
||||||
Community='public')
|
|
||||||
- print "uptime = ", res[0]
|
|
||||||
+ print("uptime = ", res[0])
|
|
||||||
|
|
||||||
var = netsnmp.Varbind('nsCacheEntry')
|
|
||||||
res = netsnmp.snmpgetnext(var, Version = 1, DestHost='localhost',
|
|
||||||
Community='public')
|
|
||||||
- print "var = ", var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print("var = ", var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
var.val = 65
|
|
||||||
res = netsnmp.snmpset(var, Version = 1, DestHost='localhost',
|
|
||||||
Community='public')
|
|
||||||
res = netsnmp.snmpget(var, Version = 1, DestHost='localhost',
|
|
||||||
Community='public')
|
|
||||||
- print "var = ", var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
+ print("var = ", var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
|
|
||||||
sess = netsnmp.Session(Version = 1, DestHost='localhost',
|
|
||||||
Community='public')
|
|
||||||
@@ -286,7 +286,7 @@ class SetTests(unittest.TestCase):
|
|
||||||
netsnmp.Varbind('.1.3.6.1.6.3.12.1.2.1.9.116.101.115.116','', 4))
|
|
||||||
res = sess.set(vars)
|
|
||||||
|
|
||||||
- print "res = ", res
|
|
||||||
+ print("res = ", res)
|
|
||||||
|
|
||||||
vars = netsnmp.VarList(netsnmp.Varbind('snmpTargetAddrTDomain'),
|
|
||||||
netsnmp.Varbind('snmpTargetAddrTAddress'),
|
|
||||||
@@ -295,14 +295,14 @@ class SetTests(unittest.TestCase):
|
|
||||||
res = sess.getnext(vars)
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
- print "\n"
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
+ print("\n")
|
|
||||||
|
|
||||||
vars = netsnmp.VarList(netsnmp.Varbind('.1.3.6.1.6.3.12.1.2.1.9.116.101.115.116','', 6))
|
|
||||||
|
|
||||||
res = sess.set(vars)
|
|
||||||
|
|
||||||
- print "res = ", res
|
|
||||||
+ print("res = ", res)
|
|
||||||
|
|
||||||
vars = netsnmp.VarList(netsnmp.Varbind('snmpTargetAddrTDomain'),
|
|
||||||
netsnmp.Varbind('snmpTargetAddrTAddress'),
|
|
||||||
@@ -311,10 +311,10 @@ class SetTests(unittest.TestCase):
|
|
||||||
res = sess.getnext(vars)
|
|
||||||
|
|
||||||
for var in vars:
|
|
||||||
- print var.tag, var.iid, "=", var.val, '(',var.type,')'
|
|
||||||
- print "\n"
|
|
||||||
+ print(var.tag, var.iid, "=", var.val, '(',var.type,')')
|
|
||||||
+ print("\n")
|
|
||||||
|
|
||||||
- print "\n-------------- SET Test End ----------------------------\n"
|
|
||||||
+ print("\n-------------- SET Test End ----------------------------\n")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__=='__main__':
|
|
||||||
Index: net-snmp-5.7.3/python/netsnmp/client_intf.c
|
|
||||||
===================================================================
|
|
||||||
--- net-snmp-5.7.3.orig/python/netsnmp/client_intf.c
|
|
||||||
+++ net-snmp-5.7.3/python/netsnmp/client_intf.c
|
|
||||||
@@ -979,7 +979,11 @@ py_netsnmp_attr_string(PyObject *obj, ch
|
|
||||||
PyObject *attr = PyObject_GetAttrString(obj, attr_name);
|
|
||||||
if (attr) {
|
|
||||||
int retval;
|
|
||||||
+#if PY_MAJOR_VERSION >= 3
|
|
||||||
+ retval = PyBytes_AsStringAndSize(attr, val, len);
|
|
||||||
+#else
|
|
||||||
retval = PyString_AsStringAndSize(attr, val, len);
|
|
||||||
+#endif
|
|
||||||
Py_DECREF(attr);
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
@@ -996,7 +1000,11 @@ py_netsnmp_attr_long(PyObject *obj, char
|
|
||||||
if (obj && attr_name && PyObject_HasAttrString(obj, attr_name)) {
|
|
||||||
PyObject *attr = PyObject_GetAttrString(obj, attr_name);
|
|
||||||
if (attr) {
|
|
||||||
+#if PY_MAJOR_VERSION >= 3
|
|
||||||
+ val = PyLong_AsLong(attr);
|
|
||||||
+#else
|
|
||||||
val = PyInt_AsLong(attr);
|
|
||||||
+#endif
|
|
||||||
Py_DECREF(attr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1079,11 +1087,19 @@ __py_netsnmp_update_session_errors(PyObj
|
|
||||||
|
|
||||||
py_netsnmp_attr_set_string(session, "ErrorStr", err_str, STRLEN(err_str));
|
|
||||||
|
|
||||||
+#if PY_MAJOR_VERSION >= 3
|
|
||||||
+ tmp_for_conversion = PyLong_FromLong(err_num);
|
|
||||||
+#else
|
|
||||||
tmp_for_conversion = PyInt_FromLong(err_num);
|
|
||||||
+#endif
|
|
||||||
PyObject_SetAttrString(session, "ErrorNum", tmp_for_conversion);
|
|
||||||
Py_DECREF(tmp_for_conversion);
|
|
||||||
|
|
||||||
+#if PY_MAJOR_VERSION >= 3
|
|
||||||
+ tmp_for_conversion = PyLong_FromLong(err_ind);
|
|
||||||
+#else
|
|
||||||
tmp_for_conversion = PyInt_FromLong(err_ind);
|
|
||||||
+#endif
|
|
||||||
PyObject_SetAttrString(session, "ErrorInd", tmp_for_conversion);
|
|
||||||
Py_DECREF(tmp_for_conversion);
|
|
||||||
}
|
|
||||||
@@ -2607,13 +2623,28 @@ static PyMethodDef ClientMethods[] = {
|
|
||||||
{NULL, NULL, 0, NULL} /* Sentinel */
|
|
||||||
};
|
|
||||||
|
|
||||||
+#if PY_MAJOR_VERSION >= 3
|
|
||||||
+static struct PyModuleDef ClientModuleDef = {
|
|
||||||
+ PyModuleDef_HEAD_INIT,
|
|
||||||
+ "client_intf",
|
|
||||||
+ NULL,
|
|
||||||
+ -1,
|
|
||||||
+ ClientMethods,
|
|
||||||
+ NULL,
|
|
||||||
+ NULL,
|
|
||||||
+ NULL,
|
|
||||||
+ NULL
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+PyMODINIT_FUNC
|
|
||||||
+PyInit_client_intf(void)
|
|
||||||
+{
|
|
||||||
+ return PyModule_Create(&ClientModuleDef);
|
|
||||||
+}
|
|
||||||
+#else
|
|
||||||
PyMODINIT_FUNC
|
|
||||||
initclient_intf(void)
|
|
||||||
{
|
|
||||||
(void) Py_InitModule("client_intf", ClientMethods);
|
|
||||||
}
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-
|
|
||||||
+#endif
|
|
@ -1,3 +1,45 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 10 20:22:35 UTC 2018 - abergmann@suse.com
|
||||||
|
|
||||||
|
- Update to net-snmp-5.8.
|
||||||
|
Fixes included:
|
||||||
|
* Fix remote DoS in agent/helpers/table.c (bsc#1111122, CVE-2018-18065)
|
||||||
|
* Fix agentx freezing on timeout (bsc#1027353)
|
||||||
|
* swintst_rpm: Protect against unspecified Group name (bsc#1102775)
|
||||||
|
- Add tsm and tlstm MIBs and the USM security module. (bsc#1081164)
|
||||||
|
- Rename and refactor patches and remove those that are already included
|
||||||
|
inside the new version.
|
||||||
|
Added:
|
||||||
|
* net-snmp-5.8-socket-path.patch
|
||||||
|
* net-snmp-5.8-testing-empty-arptable.patch
|
||||||
|
* net-snmp-5.8-pie.patch
|
||||||
|
* net-snmp-5.8-net-snmp-config-headercheck.patch
|
||||||
|
* net-snmp-5.8-perl-tk-warning.patch
|
||||||
|
* net-snmp-5.8-velocity-mib.patch
|
||||||
|
* net-snmp-5.8-netgroups.patch
|
||||||
|
* net-snmp-5.8-snmpstatus-suppress-output.patch
|
||||||
|
* net-snmp-5.8-fix-Makefile.PL.patch
|
||||||
|
* net-snmp-5.8-modern-rpm-api.patch
|
||||||
|
* net-snmp-5.8-fix-python3.patch
|
||||||
|
Removed:
|
||||||
|
* net-snmp-5.7.3-socket-path.patch
|
||||||
|
* net-snmp-5.7.3-testing-empty-arptable.patch
|
||||||
|
* net-snmp-5.7.3-pie.patch
|
||||||
|
* net-snmp-5.7.3-net-snmp-config-headercheck.patch
|
||||||
|
* net-snmp-5.7.3-perl-tk-warning.patch
|
||||||
|
* net-snmp-5.7.3-velocity-mib.patch
|
||||||
|
* net-snmp-5.7.3-fix-snmpd-crashing-when-an-agentx-disconnects.patch
|
||||||
|
* net-snmp-5.7.3-netgroups.patch
|
||||||
|
* net-snmp-5.7.3-snmpstatus-suppress-output.patch
|
||||||
|
* net-snmp-5.7.3-fix-snmp_pdu_parse-incomplete.patch
|
||||||
|
* net-snmp-5.7.3-Remove-U64-typedef.patch
|
||||||
|
* net-snmp-5.7.3-Fix-Makefile.PL.patch
|
||||||
|
* net-snmp-5.7.3-build-with-openssl-1.1.patch
|
||||||
|
* net-snmp-5.7.3-modern-rpm-api.patch
|
||||||
|
* net-snmp-python3.patch
|
||||||
|
* net-snmp-5.7.2-systemd.patch
|
||||||
|
* net-snmp-5.7.3-helpers-table-skip-if-next-handler-called.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Oct 8 23:44:37 UTC 2018 - abergmann@suse.com
|
Mon Oct 8 23:44:37 UTC 2018 - abergmann@suse.com
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
%define libname libsnmp30
|
%define libname libsnmp30
|
||||||
%bcond_without python2
|
%bcond_without python2
|
||||||
Name: net-snmp
|
Name: net-snmp
|
||||||
Version: 5.7.3
|
Version: 5.8
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: SNMP Daemon
|
Summary: SNMP Daemon
|
||||||
License: BSD-3-Clause AND MIT
|
License: BSD-3-Clause AND MIT
|
||||||
@ -48,23 +48,17 @@ Source11: snmptrapd.sysconfig
|
|||||||
Source20: net-snmp-tmpfs.conf
|
Source20: net-snmp-tmpfs.conf
|
||||||
Source98: net-snmp-rpmlintrc
|
Source98: net-snmp-rpmlintrc
|
||||||
Source99: baselibs.conf
|
Source99: baselibs.conf
|
||||||
Patch1: net-snmp-5.7.3-socket-path.patch
|
Patch1: net-snmp-5.8-socket-path.patch
|
||||||
Patch2: net-snmp-5.7.3-testing-empty-arptable.patch
|
Patch2: net-snmp-5.8-testing-empty-arptable.patch
|
||||||
Patch3: net-snmp-5.7.3-pie.patch
|
Patch3: net-snmp-5.8-pie.patch
|
||||||
Patch4: net-snmp-5.7.3-net-snmp-config-headercheck.patch
|
Patch4: net-snmp-5.8-net-snmp-config-headercheck.patch
|
||||||
Patch5: net-snmp-5.7.3-perl-tk-warning.patch
|
Patch5: net-snmp-5.8-perl-tk-warning.patch
|
||||||
Patch6: net-snmp-5.7.3-velocity-mib.patch
|
Patch6: net-snmp-5.8-velocity-mib.patch
|
||||||
Patch7: net-snmp-5.7.3-fix-snmpd-crashing-when-an-agentx-disconnects.patch
|
Patch7: net-snmp-5.8-netgroups.patch
|
||||||
Patch8: net-snmp-5.7.3-netgroups.patch
|
Patch8: net-snmp-5.8-snmpstatus-suppress-output.patch
|
||||||
Patch9: net-snmp-5.7.3-snmpstatus-suppress-output.patch
|
Patch9: net-snmp-5.8-fix-Makefile.PL.patch
|
||||||
Patch10: net-snmp-5.7.3-fix-snmp_pdu_parse-incomplete.patch
|
Patch10: net-snmp-5.8-modern-rpm-api.patch
|
||||||
Patch11: net-snmp-5.7.3-Remove-U64-typedef.patch
|
Patch11: net-snmp-5.8-fix-python3.patch
|
||||||
Patch12: net-snmp-5.7.3-Fix-Makefile.PL.patch
|
|
||||||
Patch13: net-snmp-5.7.3-build-with-openssl-1.1.patch
|
|
||||||
Patch14: net-snmp-5.7.3-modern-rpm-api.patch
|
|
||||||
Patch15: net-snmp-python3.patch
|
|
||||||
Patch16: net-snmp-5.7.2-systemd.patch
|
|
||||||
Patch17: net-snmp-5.7.3-helpers-table-skip-if-next-handler-called.patch
|
|
||||||
BuildRequires: %{python_module devel}
|
BuildRequires: %{python_module devel}
|
||||||
BuildRequires: %{python_module setuptools}
|
BuildRequires: %{python_module setuptools}
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
@ -215,7 +209,8 @@ Net-SNMP toolkit library.
|
|||||||
MIBS="misc/ipfwacc ucd-snmp/diskio etherlike-mib rmon-mib velocity smux \
|
MIBS="misc/ipfwacc ucd-snmp/diskio etherlike-mib rmon-mib velocity smux \
|
||||||
ip-mib/ipv4InterfaceTable ip-mib/ipv6InterfaceTable \
|
ip-mib/ipv4InterfaceTable ip-mib/ipv6InterfaceTable \
|
||||||
ip-mib/ipDefaultRouterTable ip-mib/ipAddressPrefixTable \
|
ip-mib/ipDefaultRouterTable ip-mib/ipAddressPrefixTable \
|
||||||
ip-mib/ipv6ScopeZoneIndexTable ip-mib/ipIfStatsTable"
|
ip-mib/ipv6ScopeZoneIndexTable ip-mib/ipIfStatsTable \
|
||||||
|
tsm-mib tlstm-mib"
|
||||||
|
|
||||||
%if 0%{?netsnmp_with_sensors}
|
%if 0%{?netsnmp_with_sensors}
|
||||||
MIBS="$MIBS ucd-snmp/lmsensorsMib"
|
MIBS="$MIBS ucd-snmp/lmsensorsMib"
|
||||||
@ -242,7 +237,7 @@ autoreconf -fvi
|
|||||||
--enable-local-smux \
|
--enable-local-smux \
|
||||||
--enable-ipv6 \
|
--enable-ipv6 \
|
||||||
--enable-ucd-snmp-compatibility \
|
--enable-ucd-snmp-compatibility \
|
||||||
--with-security-modules=tsm \
|
--with-security-modules=tsm,usm \
|
||||||
--with-transports=TLSTCP,DTLSUDP \
|
--with-transports=TLSTCP,DTLSUDP \
|
||||||
--with-systemd
|
--with-systemd
|
||||||
|
|
||||||
@ -345,6 +340,10 @@ find %{buildroot} -type f -name "*.la" -delete -print
|
|||||||
%{_bindir}/net-snmp-cert
|
%{_bindir}/net-snmp-cert
|
||||||
%{_bindir}/agentxtrap
|
%{_bindir}/agentxtrap
|
||||||
%{_bindir}/snmp-bridge-mib
|
%{_bindir}/snmp-bridge-mib
|
||||||
|
%{_bindir}/checkbandwidth
|
||||||
|
%{_bindir}/snmpping
|
||||||
|
%{_bindir}/snmpps
|
||||||
|
%{_bindir}/snmptop
|
||||||
%dir %{_libexecdir}/net-snmp
|
%dir %{_libexecdir}/net-snmp
|
||||||
%dir %{_libexecdir}/net-snmp/agents
|
%dir %{_libexecdir}/net-snmp/agents
|
||||||
%{_mandir}/man[158]/*
|
%{_mandir}/man[158]/*
|
||||||
@ -383,7 +382,7 @@ find %{buildroot} -type f -name "*.la" -delete -print
|
|||||||
%files -n perl-SNMP
|
%files -n perl-SNMP
|
||||||
%{perl_vendorarch}/auto/SNMP
|
%{perl_vendorarch}/auto/SNMP
|
||||||
%{perl_vendorarch}/auto/NetSNMP
|
%{perl_vendorarch}/auto/NetSNMP
|
||||||
%{perl_vendorarch}/auto/Bundle
|
%{perl_vendorarch}/Bundle
|
||||||
%{perl_vendorarch}/SNMP.pm
|
%{perl_vendorarch}/SNMP.pm
|
||||||
%{perl_vendorarch}/NetSNMP
|
%{perl_vendorarch}/NetSNMP
|
||||||
%{_bindir}/tkmib
|
%{_bindir}/tkmib
|
||||||
|
Loading…
Reference in New Issue
Block a user