summaryrefslogtreecommitdiff
path: root/CHANGES.txt
blob: 50c0eb2dad87deb312efeaa6a7d1b4cdaa3decd3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
Revision 4.1.8a
---------------

- UNSTABLE ALPHA RELEASE.
- SMI/dispatcher timeout convertion multiplier is actually 100 (1/100 sec)
  rather than 1/1000. This fix affects timeouts specified through SMI.
- __repr__() implemented for UdpTransportTarget, CommunityData, UsmUserData
  in oneliner module.
- Automatically initialize table index values on table management
  operations (SF bug ID #1671989).
- Fix to carrier code: ignore BADFD socket error as it may happen upon 
  FD closure on n-1 select() event.
- Fix to MibBuilder.setMibPath() to preserve previously loaded modules
  intact. Otherwise loadModules() called after setMibPath() might fail
  with 'MIB file not found in search path' exception.
- Fix to oneliner classes that now invoke unconfiguration methods on
  destruction. This might have caused memory leaks.
- Automatically initialize SNMP-USER-BASED-SM-MIB::UsmUserSecurityName
  columnar object instance on creation, as stated in DESCRIPTION (SF
  tracker ID #1620392).
- Fix to USM timeframe arithmetics (SF bug #1649032).
- VACM shortcuts merged into universal add/delVacmUser() to let notifications
  and requests to co-exist for the same user.
- At oneliners, build LCD tables keys from a hashed mix of input parameters
  to make sure these automatic entries won't interfere or exceed constraints
  on keys values.
- Made use of notificationType parameter of the sendNotification method
  in NotificationGenerator applications. This parameter used to be
  ignored in the past. Note, that previously used (and ignored) syntax
  has been changed in an incompatible way.
- Allow plain Python values in setCmd() and sendNotification()
  methods in CommandGenerator and NotificationGenerator applications
  respectively.
- Multi-target oneliner API-based example script added.
- Ignore more socket errors in datagram-type async socket code.
- AES cipher now supported (rfc3826).
- Fix to messed up tagIDs of noSuchInstance and noSuchObject types.
- SET Command Responder fixed to obscure access to non-existing variables
  by returning notWritable error (SF bug #1764839).
- AsynsockDispatcher.setSocketMap() method added to facilitate pysnmp
  transport integration into third-party asyncore-based applications.
- Fix to errorIndex generation at CommandResponder application, the value
  should be a one-based.

Revision 4.1.7a
---------------

- UNSTABLE ALPHA RELEASE.
- Low-level debugging facility implemented.
- Support UdpTransportTarget timeout and retries parameters in oneliner API.
- Fix to snmpTrapOID construction at ...proxy.rfc2576.v1ToV2() 
  function.
- Fix to MibViewController.getNodeName() to take MIB module name
  into account (SF bug #1505847).
- Do explicit check for Counter32,Unsigned32,TimeTicks,Counter64 value types
  in MibTableRow index convertion and in TextualConvention.prettyPrint()
  methods (SF bug #1506341). Handle Bits in indices as RFC2578 suggests.
- Apply read-create column status to libsmi2pysnmp-generated code
  whenever MIB text specifies that (SF bug #1508955).
- Honor and apply DISPLAY-HINT specification when building TextualConvention
  class at libsmi2pysnmp.
- Managed Objects Instances files (smi/mibs/instances/) are now 
  double-underscore prefixed to make them imported explicitly by these
  prefixed names. They used to be imported as a side-effect of
  Managed Objects files import what is way too hackerish.
- The libsmi2pysnmp now supports future libsmi bugfix that would generate 
  "ranges" subtree along with the legacy and ambiguous "range" one.
- SMI support for fixed-length string indices implemented (SF bug #1584799,
  #1653908).
- Managed Object Instances may now have smiRead, smiWrite, smiCreate methods
  to support specific value mangling. These methods, if present, would be 
  invoked from SNMP [Agent] core instead of conventional clone() method.
  The reason is to separate trivial value duplication from specific
  Instance value mangling that may have Agent-specific side effects
  (such as RowStatus).
- MIB table row destruction now works (SF bug #1555010).
- LCD unconfiguration functions for oneliners implemented (SF bug #1635270).
- unloadModules() and unexportSymbols() implemented at MibBuilder
- Notification type PDU proxy code fixed to produce symmetrical
  convertion.
- Various SNMP engine-internal caches expiration implemented.
- SMI-level access control now takes effect only if AC object is
  passed to MIB instrumentation API.
- LCD management code now uses generic MIB instrumentation features.
- Fix to oneliner manager code to have individual UdpSocketTransport
  instance per each SnmpEngine. Multithreaded apps might fail otherwise.
  (SF bug ID #1586420).
- Exclude the PYSNMP_MODULE_ID symbol from MIB view index, as it may get
  resolved into OID label instead of actual MIB object name.
- Memory leak fixed in indices.OidOrderedDict implementation.
- Fix to VACM shortcuts to let notifications and requests to co-exist 
  for the same user otherwise.
- Fix to ...oneliner.cmdgen.UsmUserData to support non-default ciphers.
- USM now uses local notion of snmpEngineBoots/Time when authoritative
  and cached estimate otherwise. Also, a security fix applied to to USM 
  time-window verification (SF bug #1649032).
- Fix to notification objects resolution code at
  NotificationOriginator.sendNotification()
- Do not raise securityLevel for USM error reports that lacks user
  information, as these reports could never be ciphered (SF bug #1624720).
- Non-default BULK PDU params now actually applied.
- SnmpEngineID default value generation algorithmic function changed
  to allow multiple SNMP engines running on the same host.
- Documentation updated.
- A handful of minor fixes applied (SourceForge tracker IDs #1537592,
  #1537600, #1537659, #1548208, #1560939, #1563715, #1575697, #1599220,
  #1615077, #1615365, #1616579).

Revision 4.1.6a
---------------

- UNSTABLE ALPHA RELEASE.
- pysnmpUsmSecretAuthKey and pysnmpUsmSecretPrivKey length increased
  up to 256 octets. There seems no limit on this in RFC, though.
- A workaround for probably broken Agents: SNMPv3 Manager code defaults
  ContextEngineId to SecurityEngineId whenever ContextEngineId is not 
  reported by authoritative SNMP engine on discovery.
- Use empty PDU in engine-discovery report at mpmod/rfc3412.py.
- MibBuilder.loadModules() now fails on missing MIB files.
- MibBuilder.exportSymbols() now accepts unnamed objects (likely Managed
  Objects Instances)
- SNMPv2-SMI.MibScalarInstance objects now support create*/destroy*
  Management Instrumentation methods to pass Columnar Object creation and
  removal events. MibTableColumn class invoke these methods accordingly.
- Fix to AsynNotificationOriginator.asyncSendNotification() callback
  formal parameters
- Initial VACM configuration implemented according to rfc3415 Appendix 1
- tools/buildmibs.sh split-up and re-implemented as tools/build-pysnmp-mib
  and pysnmp-mibs/tools/rebuild-pysnmp-mibs for better usability. These
  and libsmi2pysnmp scripts made installable.
- Types/Notifications/Groups exportSymbols() call chunking implemented
  in tools/libsmi2pysnmp
- Initial values specified to pyasn1 types to comply with latest pyasn1 API.
- Documentation improved
- Minor fixes towards Python 1.5 compatibility

Revision 4.1.5a
---------------

- UNSTABLE ALPHA RELEASE.
- Multi-lingual SNMP Trap/Inform Applications completed; examples added
- SMI model re-designed to make a clear separation between
  Managed Objects and their specification (AKA Agent and Manager side)
- SNMP SET Application support completed
- Minor, though backward incompatible, changes to one-liner API
- Many bugfixes

Revision 4.1.4a
---------------

- UNSTABLE ALPHA RELEASE.
- SHA-based authentication fixed and privacy implemented
- ...oneliner.cmdgen.UsmUserData constructor now takes 
  authProtocol and privProtocol parameters in a backward incompatible
  manner.

Revision 4.1.3a
---------------

- UNSTABLE ALPHA RELEASE.
- rfc3413 applications API changes (related to callback function
  behaviour).
- TransportDispatcher now provides "jobs" interface to clients
  for better control of dispatcher's execution.
- Many minor fixes.

Revision 4.1.2a
---------------

- UNSTABLE ALPHA RELEASE.
- Top-level application classes renamed into longer, self descripting names
  for clarity.
- CommandResponder & NotificationOriginator applications now uses 
  stand-alone SnmpContext for application registration.
- Many minor fixes (inspired by testing on WinXP)

Revision 4.1.1a
---------------

- UNSTABLE ALPHA RELEASE.
- SNMPv3 code first published
- SNMP engine and applications implemented on library level
- Major re-design towards SNMPv3-style API.

Release 4.0.2a
--------------

- Adopted to slightly changed asyncore API (as shipped with python 2,4)

Release 4.0.1a
--------------

- Minor bug/typo fixes, mostly in example/ scripts.

Release 4.0.0a
--------------

- UNSTABLE EARLY ALPHA RELEASE.
- Major re-design and re-implementation.
- Rudimental API versioning implemented to let incompatible package
  branches to co-exist within the same Python installation.
- SMI framework designed and implemented. This framework provides 
  1) various access to MIB data 2) a way to implement custom MIB
  instrumentation objects. There's also a tool for building SMI classes
  from libsmi(3) output (smidump -f python).
- ASN.1 subtyping machinery implemented. Now dynamic ASN.1 instances
  subtyping and quering becomes available. Previously, this has been done
  through Python classes inheritance what proved to be a wrong concept.
- ASN.1 codecs framework re-designed and re-implemented aimed at a more
  consistent design and better performance. Highlights include abstract
  codec interface and serialized data caching (at encoder).
- Asn1Item constraints machinery re-implemented based on Mike C. Fletcher's
  design and code. Now various constrains are implemented as stand-alone
  objects serving interested Asn1Object derivatives through some abstract
  protocol (that's probably the Decorator design pattern).
- ASN.1 tagging facility re-implemented along the client-server design
  pattern. Besides this seems to be a more appropriate design, it allows
  an easier way for dynamic subtyping.