diff --git a/cangen.c b/cangen.c index ae6de4a..79a8566 100644 --- a/cangen.c +++ b/cangen.c @@ -608,11 +608,13 @@ int main(int argc, char **argv) } addr.can_family = AF_CAN; - addr.can_ifindex = if_nametoindex(argv[optind]); - if (!addr.can_ifindex) { - perror("if_nametoindex"); + + strcpy(ifr.ifr_name, argv[optind]); + if (ioctl(s, SIOCGIFINDEX, &ifr) < 0) { + perror("SIOCGIFINDEX"); return 1; } + addr.can_ifindex = ifr.ifr_ifindex; /* * disable default receive filter on this RAW socket