Package: python-pysnmp-se Version: 3.5.2-2 Severity: wishlist Tags: patch
Hey Stefano, as discussed some weeks ago, here are the patches from/for Zenoss. Please review and test them. AFAIK they only introduce BigCounter and BigCounter2 support - see http://lists.zenoss.org/pipermail/zenoss-users/2006/001192.html Thanks, Bernd -- Bernd Zeimetz <[EMAIL PROTECTED]> <http://bzed.de/>
--- pysnmp/proto/rfc1155.py.orig 2004-01-12 03:52:53.000000000 -0500 +++ pysnmp/proto/rfc1155.py 2006-06-20 09:12:58.000000000 -0400 @@ -40,6 +40,12 @@ """ pass +class Unsigned(univ.Integer): + + def _berDecode(self, input): + # always unsigned + return univ.Integer._berDecode(self, '\0' + input) + # ApplicationSyntax class IpAddress(univ.OctetString): @@ -84,7 +90,7 @@ return '%d.%d.%d.%d' % (ord(value[0]), ord(value[1]), \ ord(value[2]), ord(value[3])) -class Counter(univ.Integer): +class Counter(Unsigned): """SNMP Counter object """ # Implicit tagging @@ -94,7 +100,7 @@ # Subtyping -- value range constraint valueRangeConstraint = (0, 4294967295L) -class Gauge(univ.Integer): +class Gauge(Unsigned): """SNMP Gauge object """ # Implicit tagging @@ -104,7 +110,7 @@ # Subtyping -- value range constraint valueRangeConstraint = (0, 4294967295L) -class TimeTicks(univ.Integer): +class TimeTicks(Unsigned): """SNMP TIMETICKS object """ # Implicit tagging
--- pysnmp/proto/rfc1155.py 2006-08-02 12:28:57.000000000 -0400 +++ pysnmp/proto/rfc1155.py 2006-08-04 15:41:26.000000000 -0400 @@ -90,6 +90,11 @@ return '%d.%d.%d.%d' % (ord(value[0]), ord(value[1]), \ ord(value[2]), ord(value[3])) +class Bug(IpAddress): + sizeConstraint = (4, 8) + def _oconv(self, value): + return IpAddress._oconv(self, value[:-4]) + class Counter(Unsigned): """SNMP Counter object """ @@ -146,8 +151,8 @@ class NetworkAddress(Choice): """SMI NetworkAddress """ - choiceNames = [ 'internet' ] - choiceComponents = [ IpAddress ] + choiceNames = [ 'internet', 'bug' ] + choiceComponents = [ IpAddress, Bug ] # Initialize to Internet address initialComponent = choiceComponents[0] @@ -168,7 +173,7 @@ """Constructed objects """ choiceNames = [ 'address', 'counter', 'gauge', 'ticks', 'arbitrary' ] - choiceComponents = [ NetworkAddress, Counter, Gauge, TimeTicks, Opaque ] + choiceComponents = [ NetworkAddress, Counter, Gauge, TimeTicks, Opaque] class ObjectSyntax(Choice): """Syntax of objects in MIB
--- pysnmp/proto/rfc1155.py 2006-08-08 09:39:11.000000000 -0400 +++ pysnmp/proto/rfc1155.py 2006-08-08 11:45:22.000000000 -0400 @@ -105,6 +105,13 @@ # Subtyping -- value range constraint valueRangeConstraint = (0, 4294967295L) +class BigCounter(Unsigned): + """SNMP Counter object + """ + # Implicit tagging + tagClass = tagClasses['APPLICATION'] + tagId = 0x01 + class Gauge(Unsigned): """SNMP Gauge object """ @@ -172,8 +179,8 @@ class ApplicationSyntax(Choice): """Constructed objects """ - choiceNames = [ 'address', 'counter', 'gauge', 'ticks', 'arbitrary' ] - choiceComponents = [ NetworkAddress, Counter, Gauge, TimeTicks, Opaque] + choiceNames = [ 'address', 'counter', 'gauge', 'ticks', 'arbitrary', 'bug' ] + choiceComponents = [ NetworkAddress, Counter, Gauge, TimeTicks, Opaque, BigCounter] class ObjectSyntax(Choice): """Syntax of objects in MIB
--- pysnmp/proto/rfc1155.py 2006-08-08 09:39:11.000000000 -0400 +++ pysnmp/proto/rfc1155.py 2006-08-08 11:45:22.000000000 -0400 @@ -112,6 +112,15 @@ tagClass = tagClasses['APPLICATION'] tagId = 0x01 +class BigCounter2(Counter): + """SMI Counter64 object + """ + # Implicit tagging + tagId = 0x06 + + # Subtyping -- value range constraint + valueRangeConstraint = (0, 18446744073709551615L) + class Gauge(Unsigned): """SNMP Gauge object """ @@ -179,8 +188,8 @@ class ApplicationSyntax(Choice): """Constructed objects """ - choiceNames = [ 'address', 'counter', 'gauge', 'ticks', 'arbitrary', 'bug' ] - choiceComponents = [ NetworkAddress, Counter, Gauge, TimeTicks, Opaque, BigCounter] + choiceNames = [ 'address', 'counter', 'gauge', 'ticks', 'arbitrary', 'bug', 'bug2' ] + choiceComponents = [ NetworkAddress, Counter, Gauge, TimeTicks, Opaque, BigCounter, BigCounter2] class ObjectSyntax(Choice): """Syntax of objects in MIB