summaryrefslogtreecommitdiff
path: root/pysnmp/proto/proxy
diff options
context:
space:
mode:
authorelie <elie>2010-12-05 22:32:41 +0000
committerelie <elie>2010-12-05 22:32:41 +0000
commit8c09928a87272a2bd07e332fdc06b95f2b6bc93a (patch)
tree3b8f65a75387316dfc3dd538c44dc43ffc9aec93 /pysnmp/proto/proxy
parentbf9a2c1ca2b99c3fc07c77c97ffda5db31b8e478 (diff)
downloadpysnmp-git-8c09928a87272a2bd07e332fdc06b95f2b6bc93a.tar.gz
* send [an empty] snmpTrapCommunity at v1ToV2()
* handle possible unsupported PDU types at v2ToV1()
Diffstat (limited to 'pysnmp/proto/proxy')
-rw-r--r--pysnmp/proto/proxy/rfc2576.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/pysnmp/proto/proxy/rfc2576.py b/pysnmp/proto/proxy/rfc2576.py
index 2fd13b40..bf8fec4e 100644
--- a/pysnmp/proto/proxy/rfc2576.py
+++ b/pysnmp/proto/proxy/rfc2576.py
@@ -115,15 +115,15 @@ def v1ToV2(v1Pdu, origV2Pdu=None):
__v1ToV2TrapMap[genericTrap]
)
+ # 3.1.4 (XXX snmpTrapCommunity.0 is missing here)
v2VarBinds.append((v2c.apiTrapPDU.sysUpTime, sysUpTime))
v2VarBinds.append((v2c.apiTrapPDU.snmpTrapOID, snmpTrapOIDParam))
- v2VarBinds.append((v2c.apiTrapPDU.snmpTrapEnterprise,
- v1.apiTrapPDU.getEnterprise(v1Pdu)))
-
- # 3.1.4 (XXX snmpTrapCommunity.0 is missing here)
v2VarBinds.append(
(v2c.apiTrapPDU.snmpTrapAddress, v1.apiTrapPDU.getAgentAddr(v1Pdu))
)
+ v2VarBinds.append((v2c.apiTrapPDU.snmpTrapCommunity, v2c.OctetString("")))
+ v2VarBinds.append((v2c.apiTrapPDU.snmpTrapEnterprise,
+ v1.apiTrapPDU.getEnterprise(v1Pdu)))
varBinds = v1.apiTrapPDU.getVarBinds(v1Pdu)
else:
@@ -170,8 +170,11 @@ def v2ToV1(v2Pdu, origV1Pdu=None):
debug.logger & debug.flagPrx and debug.logger('v2ToV1: v2Pdu %s' % v2Pdu.prettyPrint())
pduType = v2Pdu.tagSet
-
- v1Pdu = __v2ToV1PduMap[pduType].clone()
+
+ if __v2ToV1PduMap.has_key(pduType):
+ v1Pdu = __v2ToV1PduMap[pduType].clone()
+ else:
+ raise error.ProtocolError('Unsupported PDU type')
v2VarBinds = v2c.apiPDU.getVarBinds(v2Pdu)
v1VarBinds = []