diff options
author | brian <brian@FreeBSD.org> | 2001-08-21 11:07:58 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 2001-08-21 11:07:58 +0000 |
commit | 2286423a9940558949a4146502f59590daf55499 (patch) | |
tree | 865da00fcc0a67c61cafad9286c0f73f1f3b5e61 /usr.sbin/ppp | |
parent | 637fbcbedbfa2fb5dd068cdf304bef2b5ab2bf33 (diff) | |
download | FreeBSD-src-2286423a9940558949a4146502f59590daf55499.zip FreeBSD-src-2286423a9940558949a4146502f59590daf55499.tar.gz |
o Enable IFF_MULTICAST when first opening the tun device (and keep the flag
when we ioctl(TUNSIFINFO) under OpenBSD)
o Don't bring the interface up immediately
o Don't complain about unrecognised interface flags in ``show iface''.
Diffstat (limited to 'usr.sbin/ppp')
-rw-r--r-- | usr.sbin/ppp/bundle.c | 11 | ||||
-rw-r--r-- | usr.sbin/ppp/iface.c | 9 | ||||
-rw-r--r-- | usr.sbin/ppp/tun.c | 2 |
3 files changed, 11 insertions, 11 deletions
diff --git a/usr.sbin/ppp/bundle.c b/usr.sbin/ppp/bundle.c index adf5257..6b76231 100644 --- a/usr.sbin/ppp/bundle.c +++ b/usr.sbin/ppp/bundle.c @@ -746,8 +746,8 @@ bundle_Create(const char *prefix, int type, int unit) } #ifdef TUNSIFMODE - /* Make sure we're POINTOPOINT */ - iff = IFF_POINTOPOINT; + /* Make sure we're POINTOPOINT & IFF_MULTICAST */ + iff = IFF_POINTOPOINT | IFF_MULTICAST; if (ID0ioctl(bundle.dev.fd, TUNSIFMODE, &iff) < 0) log_Printf(LogERROR, "bundle_Create: ioctl(TUNSIFMODE): %s\n", strerror(errno)); @@ -784,13 +784,6 @@ bundle_Create(const char *prefix, int type, int unit) #endif #endif - if (!iface_SetFlags(bundle.iface->name, IFF_UP)) { - iface_Destroy(bundle.iface); - bundle.iface = NULL; - close(bundle.dev.fd); - return NULL; - } - log_Printf(LogPHASE, "Using interface: %s\n", ifname); bundle.bandwidth = 0; diff --git a/usr.sbin/ppp/iface.c b/usr.sbin/ppp/iface.c index 8375663..d729a78 100644 --- a/usr.sbin/ppp/iface.c +++ b/usr.sbin/ppp/iface.c @@ -622,11 +622,18 @@ iface_Show(struct cmdargs const *arg) prompt_Printf(arg->prompt, "%s (idx %d) <", iface->name, iface->index); for (f = 0; f < sizeof if_flags / sizeof if_flags[0]; f++) - if ((if_flags[f].flag & flags) || (!if_flags[f].flag && flags)) { + if ((if_flags[f].flag & flags)) { prompt_Printf(arg->prompt, "%s%s", flags == iface->flags ? "" : ",", if_flags[f].value); flags &= ~if_flags[f].flag; } + +#if 0 + if (flags) + prompt_Printf(arg->prompt, "%s0x%x", flags == iface->flags ? "" : ",", + flags); +#endif + prompt_Printf(arg->prompt, "> mtu %d has %d address%s:\n", iface->mtu, iface->addrs, iface->addrs == 1 ? "" : "es"); diff --git a/usr.sbin/ppp/tun.c b/usr.sbin/ppp/tun.c index 2f7196f..e1f4758 100644 --- a/usr.sbin/ppp/tun.c +++ b/usr.sbin/ppp/tun.c @@ -111,7 +111,7 @@ tun_configure(struct bundle *bundle) info.baudrate = bundle->bandwidth; #ifdef __OpenBSD__ - info.flags = IFF_UP|IFF_POINTOPOINT; + info.flags = IFF_UP|IFF_POINTOPOINT|IFF_MULTICAST; #endif if (ID0ioctl(bundle->dev.fd, TUNSIFINFO, &info) < 0) log_Printf(LogERROR, "tun_configure: ioctl(TUNSIFINFO): %s\n", |