From 29c3e344a5f2822854a1747ee5f2cdf887db13c7 Mon Sep 17 00:00:00 2001 From: Oliver Hartkopp Date: Tue, 29 Jan 2013 20:50:46 +0100 Subject: [PATCH] cangw: fix inverse filter display when printing the configured rules A configured inverse filter e.g. cangw -A -s can0 -d can1 -e -f 123~7FF has been displayed with 'cangw -L' like this: cangw -A -s can0 -d can1 -e -f 20000123:7FF # 0 handled 0 dropped 0 deleted While 0x20000000 was the value of CAN_INV_FILTER. This patch fixes the output to the expected display: cangw -A -s can0 -d can1 -e -f 123~7FF # 0 handled 0 dropped 0 deleted Signed-off-by: Oliver Hartkopp --- cangw.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cangw.c b/cangw.c index 4b4595c..802aa86 100644 --- a/cangw.c +++ b/cangw.c @@ -98,7 +98,10 @@ void printfilter(const void *data) { struct can_filter *filter = (struct can_filter *)data; - printf("-f %03X:%X ", filter->can_id, filter->can_mask); + if (filter->can_id & CAN_INV_FILTER) + printf("-f %03X~%X ", (filter->can_id & ~CAN_INV_FILTER), filter->can_mask); + else + printf("-f %03X:%X ", filter->can_id, filter->can_mask); } void printmod(const char *type, const void *data) -- 2.39.2