Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 4.4.12 #437

Open
wants to merge 102 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
194d2ec
pysnmp-apps renamed into snmpclitools
etingof Feb 16, 2018
4b21d3d
typo fix in RFC1158::snmpOutReadOnlys
etingof Apr 9, 2018
6aed418
4.4.5
etingof Apr 9, 2018
bec02e6
Include LICENSE in wheel
etingof Apr 13, 2018
dff00bf
Use old Sphinx with old Python
etingof Apr 13, 2018
c419576
fix InetAddressType rendering
etingof Apr 18, 2018
1021d56
better InetAddressType rendering fix
etingof Apr 21, 2018
4938e8e
asyncio.async deprecated since 3.4.4 (#143)
wallies Apr 21, 2018
8da24e3
fix potential infinite loop in GETBULK response builder
etingof Apr 21, 2018
e7ca18b
VACM contextName memory leakk fix
etingof Apr 24, 2018
293f451
VACM contextName memory leak fix followup
etingof Apr 24, 2018
acab4ce
Add Python 3.7 support (#162)
ericwb Jun 28, 2018
49927e0
pin twisted versions
etingof May 18, 2018
1cec4e7
Typo "preperly" -> "properly" (#156)
acspike May 18, 2018
9051369
reduce tests output by tailing them
etingof Jun 29, 2018
ed7e72c
switch Travis back to 3.7-dev while 3.7 is not avail
etingof Jun 29, 2018
ee4c0a5
Fix typos
etingof Jul 3, 2018
f08dad8
Switch back to offical Python 3.7 build (#163)
ericwb Jul 3, 2018
06eeaf6
Fix scoping bug in asyncio wrapper
etingof Jul 4, 2018
23d1aa7
Fix var-bind initialization from ObjectIdentity at hlapi
etingof Jul 5, 2018
d7b86be
Fix typo in docstring
etingof Jul 5, 2018
d70831c
Revert "Fix var-bind initialization from ObjectIdentity at hlapi"
etingof Jul 5, 2018
6031836
Fix `Bits` initialization with `namedValues`
etingof Jul 20, 2018
e25f128
adding a basic tox handle to simplify running tests
mattsb42-aws Jan 31, 2018
5e13765
adding py33 to the tox auto-run environments
mattsb42-aws Feb 9, 2018
83a8ac9
Ensure tests run through tox are using the expected Python executable…
vincentbernat Jul 31, 2018
0d7f612
Fix py3.7 syntax error caused by async keyword (#180)
keuko Jul 31, 2018
7abfa51
Fix crash on wrong SNMPv3 security model
etingof Aug 4, 2018
ee321e0
Fix out-of-scope OID leak in hlapi table (#172)
etingof Aug 5, 2018
36f7584
Add PySnmpError.cause attribute (#168)
etingof Aug 5, 2018
d72ad91
Fix PySnmpError implementation
etingof Aug 5, 2018
44ab5d3
release 4.4.5
etingof Aug 5, 2018
d9f5fd2
changelog typo
etingof Aug 5, 2018
43a181b
Rename LICENSE.txt -> LICENSE.rst
etingof Aug 5, 2018
8a3727a
Fix Python 2.4-2.5 except statement
etingof Aug 5, 2018
98e2a3e
prepare 4.4.6
etingof Aug 6, 2018
be8d2ca
Improve package build and dependency tracking
etingof Aug 6, 2018
b0bbd37
Improve long description in Trove
etingof Aug 6, 2018
34836cc
Recover missing LICENSE in tarball
etingof Aug 8, 2018
daa2ce0
Fix lcd.unconfigure not removing cached addr value preventing the sam…
ryban Sep 9, 2018
fcd4435
Add a CHANGELOG entry for previous fix
etingof Sep 9, 2018
2a9466d
Tolerate duplicate enumerations
etingof Sep 9, 2018
51a15bd
Tolerate non-initialised entries in SNMP community table
etingof Sep 13, 2018
ddf3085
Release 4.4.6
etingof Sep 13, 2018
2d91fa1
Cut for 4.4.7
etingof Sep 13, 2018
250deca
Ensure distinct transports if timeout/retries differ
etingof Sep 20, 2018
c7f8654
Avoid deprecation warnings for asyncio.async() in server mode (#202)
fabriziovanni Sep 26, 2018
4cf3317
Reformat `isAccessAllowed()` for clarity
etingof Oct 6, 2018
1315e5e
Fix Sphinx markup for USM crypto algorithm IDs
etingof Oct 6, 2018
5057a1f
Use `compile()` before `exec` of MIB modules
etingof Oct 26, 2018
c8d699c
Expose ASN.1 `Null` type through `rfc1902` module
etingof Oct 26, 2018
cd48f6e
Fix hlapi LCD to include `contextName` (#217)
etingof Nov 3, 2018
6a850ea
Disable Travis builds for py 2.6, 3.2 & 3.3
etingof Nov 3, 2018
59de44e
Fix possible duplicate key condition in `OrderedDict`
etingof Dec 25, 2018
a2d1e7c
Fix wrong `set()` member deletion in `MibBuilder`
etingof Dec 25, 2018
5cc25c9
Switch Travis CI to Trusty
etingof Dec 29, 2018
49af917
Extend copyright notice to year 2019
etingof Dec 29, 2018
d1689d7
Fix undefined names in `TRANSPORT-ADDRESS-MIB.py`
etingof Dec 29, 2018
29825c1
Release 4.4.7
etingof Dec 30, 2018
a375c07
Prepare for 4.4.8
etingof Dec 30, 2018
475a0ba
Fix Pythonized MIB load in source form
etingof Dec 30, 2018
4b018af
Release 4.4.8
etingof Dec 30, 2018
2b3dcaf
Prepare for 4.4.9
etingof Jan 8, 2019
fd7f6a7
MIB loader ignores file and directory access errors
etingof Jan 8, 2019
bded1e3
Emit low-level sendmsg/recvmsg debugging
etingof Jan 10, 2019
11eb3fa
Add `IPV6_V6ONLY` IPV6 socket option
etingof Jan 10, 2019
3527500
Fix socket iov blob dump in debug
etingof Jan 11, 2019
b8638ff
Improve IPV6 debugging
etingof Jan 11, 2019
1f52f82
Do not set IP_PKTINFO socket option on IPv6 socket
etingof Jan 11, 2019
fbaa6da
Fix IPV6_TRANSPARENT socket option
etingof Jan 14, 2019
ed70cdf
Add missing SNMP PDU error classes
etingof Feb 8, 2019
c393c0c
Release 4.4.9
etingof Feb 9, 2019
531ccbc
Prepare for 4.4.10
etingof Feb 9, 2019
1de1055
Respect timer resolution in asyncore main loop
etingof Mar 31, 2019
8a6dc63
Update periodics call interval on timer resolution change
etingof Mar 31, 2019
c3d6619
Replace `imp` with `importlib` is available
etingof Apr 1, 2019
b7971b9
Fix `importlib` use on Py27
etingof Apr 12, 2019
d75f2fd
Fix `var-bindings` initialization
etingof Jun 23, 2019
0228371
Fix TRAP PDU proxy translation
etingof Jul 19, 2019
9441850
Rework VACM access control function (#287)
etingof Jul 29, 2019
f240384
Fix Python 2.4 compatibility
etingof Jul 29, 2019
4546121
Fix Python 2.5 compatibility
etingof Jul 29, 2019
5d9a176
Release 4.4.10
etingof Jul 29, 2019
5cefacc
Support various forms of `vacmViewTreeFamilyMask` input
etingof Jul 30, 2019
9dd4bcc
Make MIB objects resolution more forgiving
etingof Jul 30, 2019
e8fa401
Make received MIB objects resolution more forgiving
etingof Jul 30, 2019
a901d4f
Prepare for 4.4.11
etingof Aug 1, 2019
8cbbaeb
Add USM master and localized keys configuration support (#295)
etingof Aug 3, 2019
cd06c6f
Add missing enumeration to `pysnmpUemKeyType`
etingof Aug 4, 2019
0604280
Do not store incomplete USM keys and improve USM debugging
etingof Aug 4, 2019
6066897
Fix USM configuration for the case of partial keys
etingof Aug 4, 2019
89d14d5
Fix crashing VACM debugging
etingof Aug 5, 2019
c351e90
Move most of SNMP engine discovery code to security module
etingof Aug 6, 2019
6049b0c
Pin Twisted on Python < 3.5
etingof Aug 10, 2019
3488150
Introduce "wildcard" SNMP engine ID (#297)
etingof Aug 10, 2019
8a49b7d
Fix crash on AES key localization
etingof Aug 11, 2019
1340258
Release 4.4.11
etingof Aug 11, 2019
ba53a10
Prepare for 4.4.12
etingof Aug 11, 2019
5ecc898
Docstring fix
etingof Aug 11, 2019
a9964be
Add examples on master&localized keys use
etingof Aug 13, 2019
c5cefab
Fix broken SNMPv3 authoritative engine ID discovery
etingof Sep 24, 2019
1dcc042
Release 4.4.12
etingof Sep 24, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Replace imp with importlib is available
  • Loading branch information
etingof committed Apr 1, 2019
commit c3d6619176a108758e1c7f0622cb64766471b27d
8 changes: 5 additions & 3 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -2,9 +2,11 @@
Revision 4.4.10, released 2019-04-XX
------------------------------------

- Fix to respect non-default timer resolution in asyncore main loop
- Fix to update call interval of the existing periodic dispatcher jobs
on interval change (via .setTimerResolution())
- Rebased MIB importing code onto `importlib` because `imp` is long
deprecated
- Fixed asyncore main loop to respect non-default timer resolution
- Fixed `.setTimerResolution()` behaviour of abstract main loop dispatcher
to update call intervals of the existing periodic dispatcher jobs

Revision 4.4.9, released 2019-02-09
-----------------------------------
44 changes: 28 additions & 16 deletions pysnmp/smi/builder.py
Original file line number Diff line number Diff line change
@@ -6,16 +6,32 @@
#
import os
import sys
import imp
import struct
import marshal
import time
import traceback

try:
import importlib

PY_MAGIC_NUMBER = importlib.util.MAGIC_NUMBER
SOURCE_SUFFIXES = importlib.machinery.SOURCE_SUFFIXES
BYTECODE_SUFFIXES = importlib.machinery.BYTECODE_SUFFIXES

except ImportError:
import imp

PY_MAGIC_NUMBER = imp.get_magic()
SOURCE_SUFFIXES = [imp.PY_SOURCE]
BYTECODE_SUFFIXES = [imp.PY_COMPILED]

PY_SUFFIXES = SOURCE_SUFFIXES + BYTECODE_SUFFIXES

try:
from errno import ENOENT
except ImportError:
ENOENT = -1

from pysnmp import version as pysnmp_version
from pysnmp.smi import error
from pysnmp import debug
@@ -31,27 +47,21 @@
class __AbstractMibSource(object):
def __init__(self, srcName):
self._srcName = srcName
self.__magic = imp.get_magic()
self.__sfx = {}
self.__inited = None
for sfx, mode, typ in imp.get_suffixes():
if typ not in self.__sfx:
self.__sfx[typ] = []
self.__sfx[typ].append((sfx, len(sfx), mode))
debug.logger & debug.flagBld and debug.logger('trying %s' % self)

def __repr__(self):
return '%s(%r)' % (self.__class__.__name__, self._srcName)

def _uniqNames(self, files):
u = set()

for f in files:
if f.startswith('__init__.'):
continue
for typ in (imp.PY_SOURCE, imp.PY_COMPILED):
for sfx, sfxLen, mode in self.__sfx[typ]:
if f[-sfxLen:] == sfx:
u.add(f[:-sfxLen])

u.update(f[:-len(sfx)] for sfx in PY_SUFFIXES if f.endswith(sfx))

return tuple(u)

# MibSource API follows
@@ -76,9 +86,10 @@ def listdir(self):
def read(self, f):
pycTime = pyTime = -1

for pycSfx, pycSfxLen, pycMode in self.__sfx[imp.PY_COMPILED]:
for pycSfx in BYTECODE_SUFFIXES:

try:
pycData, pycPath = self._getData(f + pycSfx, pycMode)
pycData, pycPath = self._getData(f + pycSfx, 'rb')

except IOError:
why = sys.exc_info()[1]
@@ -91,7 +102,7 @@ def read(self, f):
raise error.MibLoadError('MIB file %s access error: %s' % (f + pycSfx, why))

else:
if self.__magic == pycData[:4]:
if PY_MAGIC_NUMBER == pycData[:4]:
pycData = pycData[4:]
pycTime = struct.unpack('<L', pycData[:4])[0]
pycData = pycData[4:]
@@ -103,7 +114,8 @@ def read(self, f):
else:
debug.logger & debug.flagBld and debug.logger('bad magic in %s' % pycPath)

for pySfx, pySfxLen, pyMode in self.__sfx[imp.PY_SOURCE]:
for pySfx in SOURCE_SUFFIXES:

try:
pyTime = self._getTimestamp(f + pySfx)

@@ -125,7 +137,7 @@ def read(self, f):
return marshal.loads(pycData), pycSfx

if pyTime != -1:
modData, pyPath = self._getData(f + pySfx, pyMode)
modData, pyPath = self._getData(f + pySfx, 'r')
return compile(modData, pyPath, 'exec'), pyPath

raise IOError(ENOENT, 'No suitable module found', f)