1
0
Fork 0
mirror of https://github.com/munin-monitoring/contrib.git synced 2025-07-21 18:41:03 +00:00

arris-sb6183: Fix int32 wrapping in WebUI

When error counts wrap they are displayed as int32 and negative.
Recast them to uint32 to fix math.

Signed-off-by: Nathaniel Clark <Nathaniel.Clark@misrule.us>
This commit is contained in:
Nathaniel Clark 2021-11-30 14:11:05 -05:00 committed by Lars Kruse
parent 1977235fd5
commit b85c9aec3b

View file

@ -80,8 +80,12 @@ GPLv2
import re
import os
import sys
import ctypes
from urllib import request
def fixint(i):
return ctypes.c_uint32(int(i)).value
HOSTNAME = os.getenv("hostname", None)
STATUS_URL = "http://192.168.100.1/RgConnect.asp"
INFO_URL = "http://192.168.100.1/RgSwInfo.asp"
@ -293,10 +297,10 @@ for row in trs:
data = dict(
zip(headings, ["".join(x.itertext()).strip() for x in row.findall("td")])
)
uncorr += int(data["Uncorrectables"])
correct += int(data["Corrected"])
uncorr += fixint(data["Uncorrectables"])
correct += fixint(data["Corrected"])
channel = int(data["Channel"])
channel = fixint(data["Channel"])
print("\nmultigraph arris_power.down_{0}".format(channel))
value = data["Power"].split(" ")[0]
@ -309,8 +313,8 @@ for row in trs:
snr[channel - 1] = value
print("multigraph arris_error.down_{0}".format(channel))
print("corr.value {0}".format(data["Corrected"]))
print("uncr.value {0}".format(data["Uncorrectables"]))
print("corr.value {0}".format(fixint(data["Corrected"])))
print("uncr.value {0}".format(fixint(data["Uncorrectables"])))
# Fill missing
for i in range(len(trs), DOWNCOUNT):
@ -349,7 +353,7 @@ for row in trs:
data = dict(
zip(headings, ["".join(x.itertext()).strip() for x in row.findall("td")])
)
channel = int(data["Channel"])
channel = fixint(data["Channel"])
print("multigraph arris_power.up_{0}".format(channel))
value = data["Power"].split(" ")[0]
print("power.value {0}".format(value))