On 11/10/2017 03:51 AM, Fabian Cenedese wrote:
struct sockaddr_in addr;
s=socket(AF_INET, SOCK_DGRAM, 0);
if (s >= 0) {
// set up port from any address to bind to
memset(&addr, 0, sizeof(addr));
addr.sin_len=sizeof(addr);
addr.sin_family=AF_INET;
addr.sin_port=PP_HTONS(port);
addr.sin_addr.s_addr=PP_HTONL(INADDR_ANY);
// connect
int ret = bind(s, (struct sockaddr*)&addr, sizeof(addr));
// should succeed
if (ret < 0) {
// error
}
else {
// limit to one interface
struct ifreq ifr;
memset(&ifr, 0, sizeof(struct ifreq));
ifr.ifr_name[0] = 'e';// IFNAME0;
ifr.ifr_name[1] = '0';// IFNAME1
Unless you've made modifications to LwIP's interface naming/numbering,
the name is at least least 3 characters: two chars and a number (which
is also the index). See netif_find(), which is invoked from
SO_BINDTODEVICE.
int rc = setsockopt(s, SOL_SOCKET, SO_BINDTODEVICE,
(void*)&ifr, sizeof(struct ifreq));
}
}
Joel
_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users