From 9a3322fe7aff404d0134b242e2fd71b6984b52a6 Mon Sep 17 00:00:00 2001 From: elie Date: Sat, 7 Mar 2015 22:39:30 +0000 Subject: make config.delTransport() returning detached transport object --- CHANGES | 2 ++ examples/v3arch/asyncio/agent/ntforg/inform-v3.py | 2 +- examples/v3arch/asyncio/agent/ntforg/trap-v1.py | 2 +- examples/v3arch/asyncio/manager/cmdgen/get-v2c-custom-timeout.py | 2 +- examples/v3arch/asyncio/manager/cmdgen/getbulk-v2c.py | 2 +- .../asyncio/manager/cmdgen/getnext-v2c-from-specific-address.py | 2 +- examples/v3arch/asyncio/manager/cmdgen/set-v2c.py | 2 +- examples/v3arch/manager/cmdgen/get-v3.py | 5 +++++ examples/v3arch/trollius/agent/ntforg/inform-v3.py | 2 +- examples/v3arch/trollius/agent/ntforg/trap-v1.py | 2 +- examples/v3arch/trollius/manager/cmdgen/get-v1.py | 2 +- examples/v3arch/trollius/manager/cmdgen/get-v2c-custom-timeout.py | 2 +- examples/v3arch/trollius/manager/cmdgen/getbulk-v3.py | 2 +- examples/v3arch/trollius/manager/cmdgen/getnext-v3.py | 2 +- examples/v3arch/trollius/manager/cmdgen/set-v2c.py | 2 +- pysnmp/entity/config.py | 2 ++ 16 files changed, 22 insertions(+), 13 deletions(-) diff --git a/CHANGES b/CHANGES index 8a8ada5..06043a1 100644 --- a/CHANGES +++ b/CHANGES @@ -74,6 +74,8 @@ Revision 4.2.6rc2 broken SNMP messages or its components. - First attempt made to make some of SNMP Engine settings persistent across reboots. +- Make config.delTransport() returning detached transport object. Asyncio + examples now use this facility to explicitly shutdown transport object. - Fix to authoritative engine side snmpEngineID discovery procedure: respond with notInTimeWindows rather then with unsupportedSecurityLevel at time synchronization phase. diff --git a/examples/v3arch/asyncio/agent/ntforg/inform-v3.py b/examples/v3arch/asyncio/agent/ntforg/inform-v3.py index f14f5a2..133ff05 100644 --- a/examples/v3arch/asyncio/agent/ntforg/inform-v3.py +++ b/examples/v3arch/asyncio/agent/ntforg/inform-v3.py @@ -93,7 +93,7 @@ def snmpOperation(snmpEngine, target, snmpContext, contextName, config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() # Initiate sending SNMP message loop.run_until_complete( diff --git a/examples/v3arch/asyncio/agent/ntforg/trap-v1.py b/examples/v3arch/asyncio/agent/ntforg/trap-v1.py index fef010d..5104f90 100644 --- a/examples/v3arch/asyncio/agent/ntforg/trap-v1.py +++ b/examples/v3arch/asyncio/agent/ntforg/trap-v1.py @@ -101,7 +101,7 @@ def snmpOperation(snmpEngine, target, snmpContext, contextName, config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() # Initiate sending SNMP message asyncio.async( diff --git a/examples/v3arch/asyncio/manager/cmdgen/get-v2c-custom-timeout.py b/examples/v3arch/asyncio/manager/cmdgen/get-v2c-custom-timeout.py index 3798f2b..c2ef8b5 100644 --- a/examples/v3arch/asyncio/manager/cmdgen/get-v2c-custom-timeout.py +++ b/examples/v3arch/asyncio/manager/cmdgen/get-v2c-custom-timeout.py @@ -85,7 +85,7 @@ def snmpOperation(snmpEngine, target, contextEngineId, contextName, varBinds): config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() loop.run_until_complete( snmpOperation( diff --git a/examples/v3arch/asyncio/manager/cmdgen/getbulk-v2c.py b/examples/v3arch/asyncio/manager/cmdgen/getbulk-v2c.py index df19279..5cbe619 100644 --- a/examples/v3arch/asyncio/manager/cmdgen/getbulk-v2c.py +++ b/examples/v3arch/asyncio/manager/cmdgen/getbulk-v2c.py @@ -97,7 +97,7 @@ def snmpOperation(snmpEngine, target, contextEngineId, contextName, config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() loop.stop() diff --git a/examples/v3arch/asyncio/manager/cmdgen/getnext-v2c-from-specific-address.py b/examples/v3arch/asyncio/manager/cmdgen/getnext-v2c-from-specific-address.py index b09ccb7..e50eac8 100644 --- a/examples/v3arch/asyncio/manager/cmdgen/getnext-v2c-from-specific-address.py +++ b/examples/v3arch/asyncio/manager/cmdgen/getnext-v2c-from-specific-address.py @@ -94,7 +94,7 @@ def snmpOperation(snmpEngine, target, contextEngineId, contextName, varBinds): config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() loop.stop() diff --git a/examples/v3arch/asyncio/manager/cmdgen/set-v2c.py b/examples/v3arch/asyncio/manager/cmdgen/set-v2c.py index b3a22f3..1e512f2 100644 --- a/examples/v3arch/asyncio/manager/cmdgen/set-v2c.py +++ b/examples/v3arch/asyncio/manager/cmdgen/set-v2c.py @@ -84,7 +84,7 @@ def snmpOperation(snmpEngine, target, contextEngineId, contextName, varBinds): config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() loop.run_until_complete( snmpOperation( diff --git a/examples/v3arch/manager/cmdgen/get-v3.py b/examples/v3arch/manager/cmdgen/get-v3.py index e898904..68a6106 100644 --- a/examples/v3arch/manager/cmdgen/get-v3.py +++ b/examples/v3arch/manager/cmdgen/get-v3.py @@ -73,3 +73,8 @@ cmdgen.GetCommandGenerator().sendVarBinds( # Run I/O dispatcher which would send pending queries and process responses snmpEngine.transportDispatcher.runDispatcher() + +config.delTransport( + snmpEngine, + udp.domainName +).closeTransport() diff --git a/examples/v3arch/trollius/agent/ntforg/inform-v3.py b/examples/v3arch/trollius/agent/ntforg/inform-v3.py index 595bde5..93fe5df 100644 --- a/examples/v3arch/trollius/agent/ntforg/inform-v3.py +++ b/examples/v3arch/trollius/agent/ntforg/inform-v3.py @@ -95,7 +95,7 @@ def snmpOperation(snmpEngine, target, snmpContext, contextName, config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() # Initiate sending SNMP message loop.run_until_complete( diff --git a/examples/v3arch/trollius/agent/ntforg/trap-v1.py b/examples/v3arch/trollius/agent/ntforg/trap-v1.py index 2ec3dda..b11b39f 100644 --- a/examples/v3arch/trollius/agent/ntforg/trap-v1.py +++ b/examples/v3arch/trollius/agent/ntforg/trap-v1.py @@ -101,7 +101,7 @@ def snmpOperation(snmpEngine, target, snmpContext, contextName, config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() # Initiate sending SNMP message trollius.async( diff --git a/examples/v3arch/trollius/manager/cmdgen/get-v1.py b/examples/v3arch/trollius/manager/cmdgen/get-v1.py index 523bee0..3d14a15 100644 --- a/examples/v3arch/trollius/manager/cmdgen/get-v1.py +++ b/examples/v3arch/trollius/manager/cmdgen/get-v1.py @@ -85,7 +85,7 @@ def snmpOperation(snmpEngine, target, contextEngineId, contextName, varBinds): config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() loop.run_until_complete( snmpOperation( diff --git a/examples/v3arch/trollius/manager/cmdgen/get-v2c-custom-timeout.py b/examples/v3arch/trollius/manager/cmdgen/get-v2c-custom-timeout.py index fa7d8d3..4db7a8c 100644 --- a/examples/v3arch/trollius/manager/cmdgen/get-v2c-custom-timeout.py +++ b/examples/v3arch/trollius/manager/cmdgen/get-v2c-custom-timeout.py @@ -87,7 +87,7 @@ def snmpOperation(snmpEngine, target, contextEngineId, contextName, varBinds): config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() loop.run_until_complete( snmpOperation( diff --git a/examples/v3arch/trollius/manager/cmdgen/getbulk-v3.py b/examples/v3arch/trollius/manager/cmdgen/getbulk-v3.py index eaf5a59..50f4e69 100644 --- a/examples/v3arch/trollius/manager/cmdgen/getbulk-v3.py +++ b/examples/v3arch/trollius/manager/cmdgen/getbulk-v3.py @@ -101,7 +101,7 @@ def snmpOperation(snmpEngine, target, contextEngineId, contextName, config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() loop.stop() diff --git a/examples/v3arch/trollius/manager/cmdgen/getnext-v3.py b/examples/v3arch/trollius/manager/cmdgen/getnext-v3.py index ccdbf51..5b26bff 100644 --- a/examples/v3arch/trollius/manager/cmdgen/getnext-v3.py +++ b/examples/v3arch/trollius/manager/cmdgen/getnext-v3.py @@ -95,7 +95,7 @@ def snmpOperation(snmpEngine, target, contextEngineId, contextName, varBinds): config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() loop.stop() diff --git a/examples/v3arch/trollius/manager/cmdgen/set-v2c.py b/examples/v3arch/trollius/manager/cmdgen/set-v2c.py index 9a2366e..966e78a 100644 --- a/examples/v3arch/trollius/manager/cmdgen/set-v2c.py +++ b/examples/v3arch/trollius/manager/cmdgen/set-v2c.py @@ -86,7 +86,7 @@ def snmpOperation(snmpEngine, target, contextEngineId, contextName, varBinds): config.delTransport( snmpEngine, udp.domainName - ) + ).closeTransport() loop.run_until_complete( snmpOperation( diff --git a/pysnmp/entity/config.py b/pysnmp/entity/config.py index 3df3b1f..f9018e9 100644 --- a/pysnmp/entity/config.py +++ b/pysnmp/entity/config.py @@ -343,6 +343,7 @@ def getTransport(snmpEngine, transportDomain): def delTransport(snmpEngine, transportDomain): if not snmpEngine.transportDispatcher: return + transport = getTransport(snmpEngine, transportDomain) snmpEngine.transportDispatcher.unregisterTransport(transportDomain) # automatically shutdown automatically created transportDispatcher if 'automaticTransportDispatcher' in snmpEngine.cache: @@ -351,6 +352,7 @@ def delTransport(snmpEngine, transportDomain): snmpEngine.transportDispatcher.closeDispatcher() snmpEngine.unregisterTransportDispatcher() del snmpEngine.cache['automaticTransportDispatcher'] + return transport addSocketTransport = addTransport delSocketTransport = delTransport -- cgit v1.2.1