From 32dc866c396c262d3781e03bdfd1acd2b4a151ee Mon Sep 17 00:00:00 2001 From: Jose A Ortega Ruiz Date: Mon, 22 Feb 2010 15:42:26 +0100 Subject: Wireless monitor: better boundary checks Ignore-this: cfb69e10b2eaff6924a2df32b1e51bf0 darcs-hash:20100222144226-748be-f28cbe827c89238074448b23da7ba606f930ceb9.gz --- IWlib.hsc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'IWlib.hsc') diff --git a/IWlib.hsc b/IWlib.hsc index afd6bf0..f0bc655 100644 --- a/IWlib.hsc +++ b/IWlib.hsc @@ -69,7 +69,8 @@ getWirelessInfo iface = qualv <- (#peek struct iw_param, value) qual :: IO CInt let qualm = (#ptr struct iw_range, max_qual) rng mv <- (#peek struct iw_param, value) qualm :: IO CInt - return $ fromIntegral qualv / fromIntegral (max 1 mv) + let mxv = if mv > 0 then fromIntegral mv else 1 + return $ fromIntegral qualv / mxv else return (-1) let qv = round (100 * (q :: Double)) - return $ WirelessInfo { wiEssid = essid, wiQuality = qv } + return $ WirelessInfo { wiEssid = essid, wiQuality = min 100 qv } -- cgit v1.2.3