diff --git a/src/wireless.c b/src/wireless.c
index 1282b48c94b9db6bc55c59236fd76c3a60ba33f6..f7ba735d37687356d16d3d7bd5b3ff230736563d 100644 (file)
--- a/src/wireless.c
+++ b/src/wireless.c
vl.values = values;
vl.values_len = 1;
- vl.time = time (NULL);
- strcpy (vl.host, hostname_g);
- strcpy (vl.plugin, "wireless");
+ sstrncpy (vl.host, hostname_g, sizeof (vl.host));
+ sstrncpy (vl.plugin, "wireless", sizeof (vl.plugin));
sstrncpy (vl.plugin_instance, plugin_instance,
sizeof (vl.plugin_instance));
sstrncpy (vl.type, type, sizeof (vl.type));
power = 1.0; /* invalid */
else if ((power >= 0.0) && (power <= 100.0))
power = wireless_percent_to_power (power);
- else if (power > 100.0)
+ else if ((power > 100.0) && (power <= 256.0))
+ power = power - 256.0;
+ else if (power > 0.0)
power = 1.0; /* invalid */
/* noise [dBm] < 0.0 */
noise = 1.0; /* invalid */
else if ((noise >= 0.0) && (noise <= 100.0))
noise = wireless_percent_to_power (noise);
- else if (noise > 100.0)
+ else if ((noise > 100.0) && (noise <= 256.0))
+ noise = noise - 256.0;
+ else if (noise > 0.0)
noise = 1.0; /* invalid */
wireless_submit (device, "signal_quality", quality);