diff options
Diffstat (limited to 'examples/v1arch/asyncore/manager/cmdgen/v2c-set.py')
-rw-r--r-- | examples/v1arch/asyncore/manager/cmdgen/v2c-set.py | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/examples/v1arch/asyncore/manager/cmdgen/v2c-set.py b/examples/v1arch/asyncore/manager/cmdgen/v2c-set.py index bc031fd5..bbc95063 100644 --- a/examples/v1arch/asyncore/manager/cmdgen/v2c-set.py +++ b/examples/v1arch/asyncore/manager/cmdgen/v2c-set.py @@ -1,6 +1,6 @@ -"""Command Generator Application (SET)""" +"""Command Generator Application (GET)""" from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher -from pysnmp.carrier.asynsock.dgram.udp import UdpSocketTransport +from pysnmp.carrier.asynsock.dgram import udp from pyasn1.codec.ber import encoder, decoder from pysnmp.proto import api from time import time @@ -9,13 +9,13 @@ from time import time pMod = api.protoModules[api.protoVersion1] # Build PDU -reqPDU = pMod.SetRequestPDU() +reqPDU = pMod.GetRequestPDU() pMod.apiPDU.setDefaults(reqPDU) pMod.apiPDU.setVarBinds( reqPDU, # A list of Var-Binds to SET (((1,3,6,1,2,1,1,1,0), pMod.Integer(123456)), - ((1,3,6,1,2,1,1,2,0), pMod.IPAddress('127.0.0.1'))) + ((1,3,6,1,2,1,1,2,0), pMod.IpAddress('127.0.0.1'))) ) # Build message @@ -28,26 +28,30 @@ def cbTimerFun(timeNow, startedAt=time()): if timeNow - startedAt > 3: raise "Request timed out" -def cbRecvFun(tspDsp, transportDomain, transportAddress, +def cbRecvFun(transportDispatcher, transportDomain, transportAddress, wholeMsg, reqPDU=reqPDU): while wholeMsg: rspMsg, wholeMsg = decoder.decode(wholeMsg, asn1Spec=pMod.Message()) - print rspMsg.prettyPrinter() rspPDU = pMod.apiMessage.getPDU(rspMsg) # Match response to request if pMod.apiPDU.getRequestID(reqPDU)==pMod.apiPDU.getRequestID(rspPDU): + # Check for SNMP errors reported errorStatus = pMod.apiPDU.getErrorStatus(rspPDU) if errorStatus: print 'Error: ', errorStatus else: for oid, val in pMod.apiPDU.getVarBinds(rspPDU): print oid, val - tspDsp.doDispatchFlag = 0 + transportDispatcher.stopDispatcher() return wholeMsg -dsp = AsynsockDispatcher(udp=UdpSocketTransport().openClientMode()) -dsp.registerRecvCbFun(cbRecvFun) -dsp.registerTimerCbFun(cbTimerFun) -#dsp.sendMessage(encoder.encode(reqMsg), 'udp', ('localhost', 1161)) # 161 -dsp.sendMessage(encoder.encode(reqMsg), 'udp', ('ts29.moscow.net.rol.ru', 161)) # 161 -dsp.runDispatcher(liveForever=1) +transportDispatcher = AsynsockDispatcher() +transportDispatcher.registerTransport( + udp.domainName, udp.UdpSocketTransport().openClientMode() + ) +transportDispatcher.registerRecvCbFun(cbRecvFun) +transportDispatcher.registerTimerCbFun(cbTimerFun) +transportDispatcher.sendMessage( + encoder.encode(reqMsg), udp.domainName, ('localhost', 161) + ) +transportDispatcher.runDispatcher() |