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 <socketcan@hartkopp.net>
pull/7/head
Oliver Hartkopp 2013-01-29 20:50:46 +01:00
parent 9dad9f7354
commit 29c3e344a5
1 changed files with 4 additions and 1 deletions

View File

@ -98,6 +98,9 @@ void printfilter(const void *data)
{ {
struct can_filter *filter = (struct can_filter *)data; struct can_filter *filter = (struct can_filter *)data;
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); printf("-f %03X:%X ", filter->can_id, filter->can_mask);
} }