diff --git a/TODO b/TODO index 48e7e1af..4822ae45 100644 --- a/TODO +++ b/TODO @@ -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 bf619701..25d8fc03 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 45db1a10..7e71d20d 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? */