Temporary work-arounds for multicast problems. Needs further investigation.
This commit is contained in:
parent
0da472d7e8
commit
30bc402ebb
3 changed files with 10 additions and 0 deletions
2
TODO
2
TODO
|
@ -21,6 +21,8 @@ Core
|
||||||
|
|
||||||
- iface: SIOCGIFINDEX exists on glibc systems, but it doesn't work on 2.0.x kernels!
|
- iface: SIOCGIFINDEX exists on glibc systems, but it doesn't work on 2.0.x kernels!
|
||||||
|
|
||||||
|
* glibc problems with struct mreqn
|
||||||
|
|
||||||
- socket: Use IP_RECVERR for BGP TCP sockets?
|
- socket: Use IP_RECVERR for BGP TCP sockets?
|
||||||
|
|
||||||
- OSPF: refuse running on non-multicast devices
|
- OSPF: refuse running on non-multicast devices
|
||||||
|
|
|
@ -302,7 +302,11 @@ nl_parse_link(struct nlmsghdr *h, int scan)
|
||||||
if (fl & IFF_UP)
|
if (fl & IFF_UP)
|
||||||
f.flags |= IF_LINK_UP;
|
f.flags |= IF_LINK_UP;
|
||||||
if (fl & IFF_POINTOPOINT)
|
if (fl & IFF_POINTOPOINT)
|
||||||
|
#if 0
|
||||||
f.flags |= IF_UNNUMBERED | IF_MULTICAST;
|
f.flags |= IF_UNNUMBERED | IF_MULTICAST;
|
||||||
|
#else /* FIXME: Are tunnels always unnumbered? */
|
||||||
|
f.flags |= IF_MULTICAST;
|
||||||
|
#endif
|
||||||
if (fl & IFF_LOOPBACK)
|
if (fl & IFF_LOOPBACK)
|
||||||
f.flags |= IF_LOOPBACK | IF_IGNORE;
|
f.flags |= IF_LOOPBACK | IF_IGNORE;
|
||||||
if (fl & IFF_BROADCAST)
|
if (fl & IFF_BROADCAST)
|
||||||
|
|
|
@ -618,7 +618,11 @@ sk_open(sock *s)
|
||||||
strcpy(ifr.ifr_name, s->iface->name);
|
strcpy(ifr.ifr_name, s->iface->name);
|
||||||
if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr)) < 0)
|
if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr)) < 0)
|
||||||
ERR("SO_BINDTODEVICE");
|
ERR("SO_BINDTODEVICE");
|
||||||
|
#if 0 /* FIXME */
|
||||||
mreq_add.imr_interface.s_addr = INADDR_ANY;
|
mreq_add.imr_interface.s_addr = INADDR_ANY;
|
||||||
|
#else
|
||||||
|
mreq_add.imr_interface = mreq;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#error Multicasts not supported on PtP devices /* FIXME: Solve it somehow? */
|
#error Multicasts not supported on PtP devices /* FIXME: Solve it somehow? */
|
||||||
|
|
Loading…
Reference in a new issue