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''.
This commit is contained in:
parent
19c6903f17
commit
ebdcbc6744
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=82048
@ -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;
|
||||
|
@ -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");
|
||||
|
||||
|
@ -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",
|
||||
|
Loading…
Reference in New Issue
Block a user