Temporary work-arounds for multicast problems. Needs further investigation.

This commit is contained in:
Martin Mares 1999-12-08 15:12:54 +00:00
parent 0da472d7e8
commit 30bc402ebb
3 changed files with 10 additions and 0 deletions

2
TODO
View file

@ -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

View file

@ -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)

View file

@ -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? */