tp_meter_start() and tp_recv_result() return a negative system errno
captured from the kernel's netlink error reply. Both failure paths in
throughputmeter() printed that value with "%d", so the user saw a raw
negative number instead of a readable message. In batctl, this is usually
formatted with strerror() to get a human readable version.

Signed-off-by: Sven Eckelmann <[email protected]>
---
 throughputmeter.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/throughputmeter.c b/throughputmeter.c
index 7d41c10..6799c93 100644
--- a/throughputmeter.c
+++ b/throughputmeter.c
@@ -397,7 +397,8 @@ static int throughputmeter(struct state *state, int argc, 
char **argv)
 
        ret = tp_meter_start(state, dst_mac, time, &cookie);
        if (ret < 0) {
-               printf("Failed to send tp_meter request to kernel: %d\n", ret);
+               printf("Failed to send tp_meter request to kernel: %s\n",
+                      strerror(-ret));
                ret = EXIT_FAILURE;
                goto out;
        }
@@ -405,7 +406,8 @@ static int throughputmeter(struct state *state, int argc, 
char **argv)
        result.cookie = cookie.cookie;
        ret = tp_recv_result(listen_sock, &result);
        if (ret < 0) {
-               printf("Failed to recv tp_meter result from kernel: %d\n", ret);
+               printf("Failed to recv tp_meter result from kernel: %s\n",
+                      strerror(-ret));
                ret = EXIT_FAILURE;
                goto out;
        }

-- 
2.47.3

Reply via email to