From 8dbc28d3602fd2ceaeebdc563d98ad8f467099e4 Mon Sep 17 00:00:00 2001 From: Ilya Etingof Date: Sun, 8 Jul 2018 09:49:44 +0200 Subject: Fix BULKWALK examples Avoid sending out extra GETBULK on EOM condition --- examples/v1arch/asyncore/manager/cmdgen/getbulk-pull-whole-mib.py | 3 +++ examples/v1arch/asyncore/manager/cmdgen/getnext-pull-whole-mib.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/examples/v1arch/asyncore/manager/cmdgen/getbulk-pull-whole-mib.py b/examples/v1arch/asyncore/manager/cmdgen/getbulk-pull-whole-mib.py index dd8466af..4ea51dac 100644 --- a/examples/v1arch/asyncore/manager/cmdgen/getbulk-pull-whole-mib.py +++ b/examples/v1arch/asyncore/manager/cmdgen/getbulk-pull-whole-mib.py @@ -48,6 +48,7 @@ def cbTimerFun(timeNow): # noinspection PyUnusedLocal def cbRecvFun(transportDispatcher, transportDomain, transportAddress, wholeMsg, reqPDU=reqPDU, headVars=headVars): + while wholeMsg: rspMsg, wholeMsg = decoder.decode(wholeMsg, asn1Spec=v2c.Message()) @@ -81,6 +82,7 @@ def cbRecvFun(transportDispatcher, transportDomain, transportAddress, break else: transportDispatcher.jobFinished(1) + continue # Generate request for next row v2c.apiBulkPDU.setVarBinds( @@ -94,6 +96,7 @@ def cbRecvFun(transportDispatcher, transportDomain, transportAddress, if time() - startedAt > 3: raise Exception('Request timed out') startedAt = time() + return wholeMsg diff --git a/examples/v1arch/asyncore/manager/cmdgen/getnext-pull-whole-mib.py b/examples/v1arch/asyncore/manager/cmdgen/getnext-pull-whole-mib.py index c18b356a..b6216207 100644 --- a/examples/v1arch/asyncore/manager/cmdgen/getnext-pull-whole-mib.py +++ b/examples/v1arch/asyncore/manager/cmdgen/getnext-pull-whole-mib.py @@ -49,6 +49,7 @@ def cbTimerFun(timeNow): # noinspection PyUnusedLocal def cbRecvFun(transportDispatcher, transportDomain, transportAddress, wholeMsg, reqPDU=reqPDU, headVars=headVars): + while wholeMsg: rspMsg, wholeMsg = decoder.decode(wholeMsg, asn1Spec=pMod.Message()) rspPDU = pMod.apiMessage.getPDU(rspMsg) @@ -73,6 +74,7 @@ def cbRecvFun(transportDispatcher, transportDomain, transportAddress, break else: transportDispatcher.jobFinished(1) + continue # Generate request for next row pMod.apiPDU.setVarBinds( @@ -86,6 +88,7 @@ def cbRecvFun(transportDispatcher, transportDomain, transportAddress, if time() - startedAt > 3: raise Exception('Request timed out') startedAt = time() + return wholeMsg -- cgit v1.2.1