candump: check for joined filter support at runtime

Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
pull/1/head
Oliver Hartkopp 2015-04-01 12:58:27 +02:00
parent 1a2467ed29
commit 47fbe8fec2
1 changed files with 6 additions and 4 deletions

View File

@ -499,14 +499,16 @@ int main(int argc, char **argv)
setsockopt(s[i], SOL_CAN_RAW, CAN_RAW_ERR_FILTER, setsockopt(s[i], SOL_CAN_RAW, CAN_RAW_ERR_FILTER,
&err_mask, sizeof(err_mask)); &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) if (numfilter)
setsockopt(s[i], SOL_CAN_RAW, CAN_RAW_FILTER, setsockopt(s[i], SOL_CAN_RAW, CAN_RAW_FILTER,
rfilter, numfilter * sizeof(struct can_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); free(rfilter);
} /* if (nptr) */ } /* if (nptr) */