summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pysnmp/smi/builder.py22
1 files changed, 14 insertions, 8 deletions
diff --git a/pysnmp/smi/builder.py b/pysnmp/smi/builder.py
index a67e61b0..ca94d35f 100644
--- a/pysnmp/smi/builder.py
+++ b/pysnmp/smi/builder.py
@@ -8,7 +8,7 @@ except ImportError:
class MibBuilder:
def __init__(self):
- self.lastBuildId = 0L
+ self.lastBuildId = self._autoName = 0L
paths = (
os.path.join(os.path.split(error.__file__)[0], 'mibs','instances'),
os.path.join(os.path.split(error.__file__)[0], 'mibs')
@@ -105,16 +105,22 @@ class MibBuilder:
r = r + (self.mibSymbols[modName][symName],)
return r
- def exportSymbols(self, modName, **kwargs):
- for symName, symObj in kwargs.items():
- if not self.mibSymbols.has_key(modName):
- self.mibSymbols[modName] = {}
- if self.mibSymbols[modName].has_key(symName):
+ def exportSymbols(self, modName, *anonymousSyms, **namedSyms):
+ if not self.mibSymbols.has_key(modName):
+ self.mibSymbols[modName] = {}
+ mibSymbols = self.mibSymbols[modName]
+
+ for symObj in anonymousSyms:
+ mibSymbols['__pysnmp_%ld' % self._autoName] = symObj
+ self._autoName = self._autoName + 1
+
+ for symName, symObj in namedSyms.items():
+ if mibSymbols.has_key(symName):
raise error.SmiError(
'Symbol %s already exported at %s' % (symName, modName)
)
if hasattr(symObj, 'label') and symObj.label:
symName = symObj.label
- self.mibSymbols[modName][symName] = symObj
-
+ mibSymbols[symName] = symObj
+
self.lastBuildId = self.lastBuildId + 1