diff options
author | elie <elie> | 2010-12-05 22:32:41 +0000 |
---|---|---|
committer | elie <elie> | 2010-12-05 22:32:41 +0000 |
commit | 8c09928a87272a2bd07e332fdc06b95f2b6bc93a (patch) | |
tree | 3b8f65a75387316dfc3dd538c44dc43ffc9aec93 /pysnmp/proto/proxy | |
parent | bf9a2c1ca2b99c3fc07c77c97ffda5db31b8e478 (diff) | |
download | pysnmp-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.py | 15 |
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 = [] |