-
Notifications
You must be signed in to change notification settings - Fork 38
Open
Description
I'm setting an OctetString as follows as an SNMP DateTime object
I'm not sure if the way I'm setting the DateTime is correct for SNMP, but when I do a snmpwalk, I'm able to see the variable just fine. Except the program blows up when I call dump_registered()
setup
import struct
import time
# setup the agent as in simple_agent.py example, then
time_millisecs = 1577836800000
# convert milliseconds to an OctetString
value = time.gmtime(time_millisecs / 1000)
value = struct.pack(
">HBBBBBB",
value.tm_year,
value.tm_mon,
value.tm_mday,
value.tm_hour,
value.tm_min,
value.tm_sec,
0,
)
new_row.setRowCell(2, agent.OctetString(value))
# the above is fine, but it then blows up when the following is called
dump_registered(agent)stacktrace
Traceback (most recent call last):
File "./snmp_agent.py", line 465, in <module>
main()
File "./snmp_agent.py", line 435, in main
dump_registered(agent)
File "./snmp_agent.py", line 342, in dump_registered
variables = agent.getRegistered(context)
File "~/my_venv/lib/python3.8/site-packages/netsnmpagent.py", line 949, in getRegistered
"value": snmpobj.value()
File "~/my_venv/lib/python3.8/site-packages/netsnmpagent.py", line 895, in value
retdict[indices][int(data.contents.column)] = u(ctypes.string_at(data.contents.data.string, data.contents.data_len))
File "~/my_venv/lib/python3.8/site-packages/netsnmpagent.py", line 51, in u
return s if isinstance("Test", bytes) else s.decode(locale.getpreferredencoding())
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position 1: invalid continuation byte
Exception ignored in: <module 'threading' from '/usr/lib/python3.8/threading.py'>
Traceback (most recent call last):
File "/usr/lib/python3.8/threading.py", line 1388, in _shutdown
lock.acquire()
KeyboardInterrupt:
* Cleaning up...
Metadata
Metadata
Assignees
Labels
No labels