diff options
author | Martin Mares <mj@ucw.cz> | 1999-12-08 16:12:54 +0100 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1999-12-08 16:12:54 +0100 |
commit | 30bc402ebb324749f9468f8ff196545bb0a58442 (patch) | |
tree | 12b93e065f28d0e5f1d8d6ec5b292044cfca382d | |
parent | 0da472d7e867e31c49fccc4ee45df3ef47c29c9b (diff) | |
download | bird-30bc402ebb324749f9468f8ff196545bb0a58442.tar bird-30bc402ebb324749f9468f8ff196545bb0a58442.zip |
Temporary work-arounds for multicast problems. Needs further investigation.
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | sysdep/linux/netlink/netlink.c | 4 | ||||
-rw-r--r-- | sysdep/unix/io.c | 4 |
3 files changed, 10 insertions, 0 deletions
@@ -21,6 +21,8 @@ Core - 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? - OSPF: refuse running on non-multicast devices diff --git a/sysdep/linux/netlink/netlink.c b/sysdep/linux/netlink/netlink.c index bf61970..25d8fc0 100644 --- a/sysdep/linux/netlink/netlink.c +++ b/sysdep/linux/netlink/netlink.c @@ -302,7 +302,11 @@ nl_parse_link(struct nlmsghdr *h, int scan) if (fl & IFF_UP) f.flags |= IF_LINK_UP; if (fl & IFF_POINTOPOINT) +#if 0 f.flags |= IF_UNNUMBERED | IF_MULTICAST; +#else /* FIXME: Are tunnels always unnumbered? */ + f.flags |= IF_MULTICAST; +#endif if (fl & IFF_LOOPBACK) f.flags |= IF_LOOPBACK | IF_IGNORE; if (fl & IFF_BROADCAST) diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c index 45db1a1..7e71d20 100644 --- a/sysdep/unix/io.c +++ b/sysdep/unix/io.c @@ -618,7 +618,11 @@ sk_open(sock *s) strcpy(ifr.ifr_name, s->iface->name); if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr)) < 0) ERR("SO_BINDTODEVICE"); +#if 0 /* FIXME */ mreq_add.imr_interface.s_addr = INADDR_ANY; +#else + mreq_add.imr_interface = mreq; +#endif } #else #error Multicasts not supported on PtP devices /* FIXME: Solve it somehow? */ |