diff --git a/cups/files/printer-details.py b/cups/files/printer-details.py
index 323303b..b2a425c 100755
--- a/cups/files/printer-details.py
+++ b/cups/files/printer-details.py
@@ -132,11 +132,15 @@ def getdata(name, addr, templates):
baseoid + '.6.1'), snmpdata.keys()))
data += '
\n'
for k in keys:
+ try:
+ value = ' %s\n' % getstatus(snmpdata['%s.9.1.%s' % (baseoid, k)],
+ snmpdata['%s.8.1.%s' % (baseoid, k)])
+ except KeyError:
+ continue
data += '\n'
data += ' %s: | \n' % (
snmpdata[baseoid + '.6.1.' + k])
- data += ' %s\n' % getstatus(snmpdata['%s.9.1.%s' % (baseoid, k)],
- snmpdata['%s.8.1.%s' % (baseoid, k)])
+ data += value
data += '
\n'
data += '
\n'
data += '\n'
@@ -244,7 +248,7 @@ def readtemplate(name, *args, **kwargs):
## snmp functions
def snmpget(community, hostname, *args):
- cmdline = [ 'snmpget', '-On', '-v', '1', '-c', community, hostname ]
+ cmdline = [ 'snmpget', '-Ona', '-v', '1', '-c', community, hostname ]
for o in args:
cmdline.append(o)
ret = {}
@@ -257,13 +261,21 @@ def snmpget(community, hostname, *args):
def snmpwalk(community, hostname, oid):
- cmdline = [ 'snmpwalk', '-On', '-v', '1', '-c', community, hostname, oid ]
+ cmdline = [ 'snmpwalk', '-Ona', '-v', '1', '-c', community, hostname, oid ]
ret = {}
cmd = Popen(cmdline, stdout=PIPE, stderr=PIPE, close_fds=True)
+ buff = ''
for line in cmd.stdout.readlines():
- line = snmpparse(line)
- if line is not None:
- ret[line[0]] = line[1]
+ if re.search('[\.0-9]* = .*', line):
+ buff = snmpparse(buff)
+ if buff is not None:
+ ret[buff[0]] = buff[1]
+ buff = line.strip()
+ else:
+ buff += line.strip()
+ buff = snmpparse(buff)
+ if buff is not None:
+ ret[buff[0]] = buff[1]
return ret