I am attempting to read/write to multiple CAN Bus sockets on a device out of the same thread. However, I am only getting RX messages when I write to the boards that are supposed to be on can1 when I write to can0's file descriptor.
I am thinking it is due to how the interface indices are bound. The ifr_ifindex is 0 for both sockets I have opened.
ioctl(s, SIOCGIFINDEX, &ifr);
addr.can_ifindex = ifr.ifr_ifindex;
bind(s, (struct sockaddr*)&addr, sizeof(addr));
What is the proper procedure for handling multiple CAN sockets when determining or setting the interface index using ioctl?