diff options
author | Damien Miller <djm@mindrot.org> | 2010-08-10 12:47:40 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2010-08-10 12:47:40 +1000 |
commit | 2c4b13aa32cbe05801857d3a1a0080d8b0030155 (patch) | |
tree | 77842aeb9a61df86530f4963f90884ecf28a8d17 | |
parent | 792010bafde7f901d339039b56f648912fd54b02 (diff) |
- (djm) bz#1561: don't bother setting IFF_UP on tun(4) device if it is
already set. Makes FreeBSD user openable tunnels useful; patch from
richard.burakowski+ossh AT mrburak.net, ok dtucker@
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | openbsd-compat/port-tun.c | 8 |
2 files changed, 10 insertions, 3 deletions
@@ -1,4 +1,9 @@ | |||
1 | 20100809 | 1 | 20100809 |
2 | - (djm) bz#1561: don't bother setting IFF_UP on tun(4) device if it is | ||
3 | already set. Makes FreeBSD user openable tunnels useful; patch from | ||
4 | richard.burakowski+ossh AT mrburak.net, ok dtucker@ | ||
5 | |||
6 | 20100809 | ||
2 | - OpenBSD CVS Sync | 7 | - OpenBSD CVS Sync |
3 | - djm@cvs.openbsd.org 2010/08/08 16:26:42 | 8 | - djm@cvs.openbsd.org 2010/08/08 16:26:42 |
4 | [version.h] | 9 | [version.h] |
diff --git a/openbsd-compat/port-tun.c b/openbsd-compat/port-tun.c index ddc92d0f3..0d756f74f 100644 --- a/openbsd-compat/port-tun.c +++ b/openbsd-compat/port-tun.c | |||
@@ -173,9 +173,11 @@ sys_tun_open(int tun, int mode) | |||
173 | 173 | ||
174 | if (ioctl(sock, SIOCGIFFLAGS, &ifr) == -1) | 174 | if (ioctl(sock, SIOCGIFFLAGS, &ifr) == -1) |
175 | goto failed; | 175 | goto failed; |
176 | ifr.ifr_flags |= IFF_UP; | 176 | if ((ifr.ifr_flags & IFF_UP) == 0) { |
177 | if (ioctl(sock, SIOCSIFFLAGS, &ifr) == -1) | 177 | ifr.ifr_flags |= IFF_UP; |
178 | goto failed; | 178 | if (ioctl(sock, SIOCSIFFLAGS, &ifr) == -1) |
179 | goto failed; | ||
180 | } | ||
179 | 181 | ||
180 | close(sock); | 182 | close(sock); |
181 | return (fd); | 183 | return (fd); |