summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorangelos <angelos@openbsd.org>1998-03-20 02:58:19 +0000
committerangelos <angelos@openbsd.org>1998-03-20 02:58:19 +0000
commitcac87f6f3db3dce3d1ed42b39e2c98dc824bcf38 (patch)
tree7ce9881eb72f3d40da2c45b60e80160bb5575c8e
parentAdd an explanatory comment, why we keep the interface address and keep (diff)
downloadwireguard-openbsd-cac87f6f3db3dce3d1ed42b39e2c98dc824bcf38.tar.xz
wireguard-openbsd-cac87f6f3db3dce3d1ed42b39e2c98dc824bcf38.zip
Be "aware" of ifaliases.
-rw-r--r--usr.sbin/amd/amd/wire.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/usr.sbin/amd/amd/wire.c b/usr.sbin/amd/amd/wire.c
index cb246fb7d9c..57c4186e816 100644
--- a/usr.sbin/amd/amd/wire.c
+++ b/usr.sbin/amd/amd/wire.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)wire.c 8.1 (Berkeley) 6/6/93
- * $Id: wire.c,v 1.2 1997/01/31 14:42:03 graichen Exp $
+ * $Id: wire.c,v 1.3 1998/03/20 02:58:19 angelos Exp $
*/
/*
@@ -136,6 +136,7 @@ char *getwire()
*/
for (cp = buf; cp < cplim; cp += size(ifr)) {
addrlist *al;
+ struct sockaddr_in sintmp;
ifr = (struct ifreq *) cp;
if (ifr->ifr_addr.sa_family != AF_INET)
@@ -143,6 +144,8 @@ char *getwire()
else
address = ((struct sockaddr_in *) &ifr->ifr_addr)->sin_addr.s_addr;
+ sintmp.sin_addr.s_addr = address;
+
/*
* Get interface flags
*/
@@ -161,6 +164,7 @@ char *getwire()
/*
* Get the netmask of this interface
*/
+ memcpy(&ifr->ifr_addr, &sintmp, sizeof(sintmp));
if (ioctl(sk, SIOCGIFNETMASK, (caddr_t) ifr) < 0)
continue;