Hi!
[OS: OpenBSD-3.5]
[openvpn: 2.0_beta5, 1.5]
It appears that openvpn doesn't enable the multicast flag for the
tun interface on OpenBSD (on FreeBSD for example, the flag is always
set). E.g., if I use:
openvpn --local <...> --remote <...> --ifconfig <...> <...> --dev tun0
Then the interface doesn't have the MULTICAST flag set:
tun0: flags=51<UP,POINTOPOINT,RUNNING> mtu 1500
inet ...
I believe the following simple patch (against 2.0_beta5) fixes the
problem.
Thanks,
Pavlin
--- tun.c.org Sun Jun 13 00:34:28 2004
+++ tun.c Tue Jun 15 23:24:58 2004
@@ -1274,6 +1274,24 @@
open_tun (const char *dev, const char *dev_type, const char *dev_node, bool
ipv6, struct tuntap *tt)
{
open_tun_generic (dev, dev_type, dev_node, ipv6, true, true, tt);
+
+ /* Enable multicast on the interface */
+ if (tt->fd >= 0)
+ {
+ struct tuninfo info;
+
+ if (ioctl (tt->fd, TUNGIFINFO, &info) < 0) {
+ msg (M_WARN | M_ERRNO, "Can't get interface info: %s",
+ strerror(errno));
+ }
+
+ info.flags |= IFF_MULTICAST;
+
+ if (ioctl (tt->fd, TUNSIFINFO, &info) < 0) {
+ msg (M_WARN | M_ERRNO, "Can't set interface info: %s",
+ strerror(errno));
+ }
+ }
}
void