From 3655158512b9710d9274a1881925e8db1a542c8b Mon Sep 17 00:00:00 2001 From: Amin Ben Ramdhane Date: Fri, 24 Dec 2021 10:38:42 +0100 Subject: [PATCH] LastDataUplinkRate & LastDataDownlinkRate: convert char to float instead of integer in order to get the correct value --- dmtree/tr181/wifi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dmtree/tr181/wifi.c b/dmtree/tr181/wifi.c index 7ccaee45..41f046b7 100644 --- a/dmtree/tr181/wifi.c +++ b/dmtree/tr181/wifi.c @@ -3138,9 +3138,9 @@ static int get_WiFiAccessPointAssociatedDevice_MACAddress(char *refparam, struct static int get_WiFiAccessPointAssociatedDevice_LastDataDownlinkRate(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { char *rate_mbps = dmjson_get_value((json_object *)data, 3, "stats", "rx_rate_latest", "rate"); - unsigned int rate_kbps = (rate_mbps && *rate_mbps != '\0') ? atoi(rate_mbps) * 1000 : 1000; + float rate_kbps = (rate_mbps && *rate_mbps != '\0') ? atof(rate_mbps) * 1000 : 1000; - dmasprintf(value, "%u", rate_kbps); + dmasprintf(value, "%u", (unsigned int)rate_kbps); return 0; } @@ -3148,9 +3148,9 @@ static int get_WiFiAccessPointAssociatedDevice_LastDataDownlinkRate(char *refpar static int get_WiFiAccessPointAssociatedDevice_LastDataUplinkRate(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { char *rate_mbps = dmjson_get_value((json_object *)data, 3, "stats", "tx_rate_latest", "rate"); - unsigned int rate_kbps = (rate_mbps && *rate_mbps != '\0') ? atoi(rate_mbps) * 1000 : 1000; + float rate_kbps = (rate_mbps && *rate_mbps != '\0') ? atof(rate_mbps) * 1000 : 1000; - dmasprintf(value, "%u", rate_kbps); + dmasprintf(value, "%u", (unsigned int)rate_kbps); return 0; }