must save and restore flags when dest addr is set.
authorThomas Ferrin <tef@ucbvax.Berkeley.EDU>
Thu, 18 Oct 1984 05:00:46 +0000 (21:00 -0800)
committerThomas Ferrin <tef@ucbvax.Berkeley.EDU>
Thu, 18 Oct 1984 05:00:46 +0000 (21:00 -0800)
SCCS-vsn: sbin/ifconfig/ifconfig.c 4.10

usr/src/sbin/ifconfig/ifconfig.c

index ef07aee..701082b 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef lint
 #ifndef lint
-static char sccsid[] = "@(#)ifconfig.c 4.9 (Berkeley) %G%";
+static char sccsid[] = "@(#)ifconfig.c 4.10 (Berkeley) %G%";
 #endif
 
 #include <sys/types.h>
 #endif
 
 #include <sys/types.h>
@@ -116,11 +116,13 @@ setifdstaddr(addr, param)
        char *addr;
        int param;
 {
        char *addr;
        int param;
 {
+       int flags = ifr.ifr_flags;
 
        getaddr(addr, (struct sockaddr_in *)&ifr.ifr_dstaddr);
        strncpy(ifr.ifr_name, name, sizeof (ifr.ifr_name));
        if (ioctl(s, SIOCSIFDSTADDR, (caddr_t)&ifr) < 0)
                Perror("ioctl (SIOCSIFDSTADDR)");
 
        getaddr(addr, (struct sockaddr_in *)&ifr.ifr_dstaddr);
        strncpy(ifr.ifr_name, name, sizeof (ifr.ifr_name));
        if (ioctl(s, SIOCSIFDSTADDR, (caddr_t)&ifr) < 0)
                Perror("ioctl (SIOCSIFDSTADDR)");
+       ifr.ifr_flags = flags;
 }
 
 setifflags(vname, value)
 }
 
 setifflags(vname, value)