From: Oliver Hartkopp Date: Wed, 1 Apr 2015 10:58:27 +0000 (+0200) Subject: candump: check for joined filter support at runtime X-Git-Url: https://rtime.felk.cvut.cz/gitweb/can-utils.git/commitdiff_plain/47fbe8fec25823a54f4eb7630aedb6d5d716a7b9 candump: check for joined filter support at runtime Signed-off-by: Oliver Hartkopp --- diff --git a/candump.c b/candump.c index eab9495..5daf622 100644 --- a/candump.c +++ b/candump.c @@ -499,14 +499,16 @@ int main(int argc, char **argv) setsockopt(s[i], SOL_CAN_RAW, CAN_RAW_ERR_FILTER, &err_mask, sizeof(err_mask)); + if (join_filter && setsockopt(s[i], SOL_CAN_RAW, CAN_RAW_JOIN_FILTERS, + &join_filter, sizeof(join_filter)) < 0) { + perror("setsockopt CAN_RAW_JOIN_FILTERS not supported by your Linux Kernel"); + return 1; + } + if (numfilter) setsockopt(s[i], SOL_CAN_RAW, CAN_RAW_FILTER, rfilter, numfilter * sizeof(struct can_filter)); - if (join_filter) - setsockopt(s[i], SOL_CAN_RAW, CAN_RAW_JOIN_FILTERS, - &join_filter, sizeof(join_filter)); - free(rfilter); } /* if (nptr) */