I'd like to use zbeacon as a discovery service. My devices (Linux) have multiple interfaces (wired and wireless) and I would like to send beacons out both interfaces.
In my first attempt, zbeacon choose the wireless interface to publish on both devices, yet my two devices did not discover each other over the working wireless link. I was getting "Network unreachable" on sendto, because I did not have a route for 255.255.255.255 on the wireless interface. The interface broadcast address is 172.16.255.255. The s_get_interface code sets the broadcast address to the interface broadcast address value when it selects the interface, but then overwrites the self->broadcast.sin_addr with INADDR_BROADCAST before leaving the method. There are two solutions for me. I could add the 255.255.255.255 route to this interface, but I'd rather not. Or I could remove the INADDR_BROADCAST line and use the original broadcast address for the chosen interface. 172.16.255.255 in my case. I have no idea if this is a bug or a decision. Should I ensure I have the correct route set, or just change the zbeacon code to use the interface broadcast address. I'd like the ability to send beacons on multiple interfaces. Or at least the ability to specify an interface and run two discovery services (one on each interface). As it stands now both instances choose the same wireless interface to publish beacons on. It looks like this is not currently possible, or my setup incorrect. Is there a way to set up my routing table to send all 255.255.255.255 packets out multiple interfaces (this explaining why it is used as broadcast address over the interface address)? I tried adding the route on two interfaces, but it looks like my zbeacons still only go out one interface. What's the best way to get beacon's published from multiple interfaces? Joe Pulver
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
