diff options
author | elie <elie> | 2011-01-22 22:02:28 +0000 |
---|---|---|
committer | elie <elie> | 2011-01-22 22:02:28 +0000 |
commit | 5e59152ba3f89ef7443716d1cc0edb429984d1c2 (patch) | |
tree | 11eabdc7807f108546023d185183f9fad31d2783 | |
parent | 196a0b4e59681708011eadbcb998c3be7ecbd67b (diff) | |
download | pysnmp-5e59152ba3f89ef7443716d1cc0edb429984d1c2.tar.gz |
for read queries, do not lookup pure OID arguments at MIB for efficiency
-rw-r--r-- | pysnmp/entity/rfc3413/oneliner/cmdgen.py | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/pysnmp/entity/rfc3413/oneliner/cmdgen.py b/pysnmp/entity/rfc3413/oneliner/cmdgen.py index c662ff1..9fb70b4 100644 --- a/pysnmp/entity/rfc3413/oneliner/cmdgen.py +++ b/pysnmp/entity/rfc3413/oneliner/cmdgen.py @@ -240,20 +240,28 @@ class AsynCommandGenerator: ) self.__knownTransportAddrs.clear() + def makeReadVarBinds(self, varNames): + varBinds = [] + for varName in varNames: + if type(varName[0]) in (types.IntType, types.LongType): + name = varName + else: + name, oid = mibvar.mibNameToOid( + self.mibViewController, varName + ) + name = name + oid + varBinds.append((name, self._null)) + return varBinds + # Async SNMP apps - + def asyncGetCmd( self, authData, transportTarget, varNames, (cbFun, cbCtx) ): addrName, paramsName = self.cfgCmdGen( authData, transportTarget ) - varBinds = [] - for varName in varNames: - name, oid = mibvar.mibNameToOid( - self.mibViewController, varName - ) - varBinds.append((name + oid, self._null)) + varBinds = self.makeReadVarBinds(varNames) return cmdgen.GetCommandGenerator().sendReq( self.snmpEngine, addrName, varBinds, cbFun, cbCtx, authData.contextEngineId, authData.contextName @@ -294,12 +302,7 @@ class AsynCommandGenerator: addrName, paramsName = self.cfgCmdGen( authData, transportTarget ) - varBinds = [] - for varName in varNames: - name, oid = mibvar.mibNameToOid( - self.mibViewController, varName - ) - varBinds.append((name + oid, self._null)) + varBinds = self.makeReadVarBinds(varNames) return cmdgen.NextCommandGenerator().sendReq( self.snmpEngine, addrName, varBinds, cbFun, cbCtx, authData.contextEngineId, authData.contextName @@ -312,12 +315,7 @@ class AsynCommandGenerator: addrName, paramsName = self.cfgCmdGen( authData, transportTarget ) - varBinds = [] - for varName in varNames: - name, oid = mibvar.mibNameToOid( - self.mibViewController, varName - ) - varBinds.append((name + oid, self._null)) + varBinds = self.makeReadVarBinds(varNames) return cmdgen.BulkCommandGenerator().sendReq( self.snmpEngine, addrName, nonRepeaters, maxRepetitions, varBinds, cbFun, cbCtx, |