Module Name:    src
Committed By:   christos
Date:           Tue Sep 13 15:41:34 UTC 2016

Modified Files:
        src/sys/netinet: in.c
        src/sys/netinet6: in6.c

Log Message:
When initializing addresses, reset the interface flags to 0. This fixes
an issue where point to point addresses that started down, and then came
up, were left with stale flags on one side of the point to point link.


To generate a diff of this commit:
cvs rdiff -u -r1.179 -r1.180 src/sys/netinet/in.c
cvs rdiff -u -r1.218 -r1.219 src/sys/netinet6/in6.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netinet/in.c
diff -u src/sys/netinet/in.c:1.179 src/sys/netinet/in.c:1.180
--- src/sys/netinet/in.c:1.179	Thu Sep  1 00:27:00 2016
+++ src/sys/netinet/in.c	Tue Sep 13 11:41:33 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: in.c,v 1.179 2016/09/01 04:27:00 ozaki-r Exp $	*/
+/*	$NetBSD: in.c,v 1.180 2016/09/13 15:41:33 christos Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -91,7 +91,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in.c,v 1.179 2016/09/01 04:27:00 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in.c,v 1.180 2016/09/13 15:41:33 christos Exp $");
 
 #include "arp.h"
 
@@ -1065,6 +1065,7 @@ in_ifinit(struct ifnet *ifp, struct in_i
 	 */
 	oldaddr = ia->ia_addr;
 	ia->ia_addr = *sin;
+	ia->ia4_flags = 0;
 
 	/* Set IN_IFF flags early for if_addr_init() */
 	if (hostIsNew && if_do_dad(ifp) && !in_nullhost(ia->ia_addr.sin_addr)) {

Index: src/sys/netinet6/in6.c
diff -u src/sys/netinet6/in6.c:1.218 src/sys/netinet6/in6.c:1.219
--- src/sys/netinet6/in6.c:1.218	Fri Sep  2 11:57:54 2016
+++ src/sys/netinet6/in6.c	Tue Sep 13 11:41:34 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: in6.c,v 1.218 2016/09/02 15:57:54 roy Exp $	*/
+/*	$NetBSD: in6.c,v 1.219 2016/09/13 15:41:34 christos Exp $	*/
 /*	$KAME: in6.c,v 1.198 2001/07/18 09:12:38 itojun Exp $	*/
 
 /*
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in6.c,v 1.218 2016/09/02 15:57:54 roy Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in6.c,v 1.219 2016/09/13 15:41:34 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -1708,6 +1708,7 @@ in6_ifinit(struct ifnet *ifp, struct in6
 	}
 
 	ia->ia_addr = *sin6;
+	ia->ia6_flags = 0;
 
 	if (ifacount <= 0 &&
 	    (error = if_addr_init(ifp, &ia->ia_ifa, true)) != 0) {

Reply via email to