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>
{
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)