changeset 2163:7e3e7df9ead6 draft

Fix virtual interfaces without a hardware address.
author Roy Marples <roy@marples.name>
date Sat, 23 Nov 2013 14:10:00 +0000
parents 2f7b7d99fd37
children 0fd673c9feb5
files if-linux.c
diffstat 1 files changed, 5 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/if-linux.c	Thu Nov 21 08:40:59 2013 +0000
+++ b/if-linux.c	Sat Nov 23 14:10:00 2013 +0000
@@ -476,11 +476,11 @@
 		return 1;
 	}
 
-	/* Bridge interfaces set IFF_LOWER_UP when they have a valid
-	 * hardware address. To trigger a valid hardware address pickup
-	 * we need to pretend that that don't exist until they have
-	 * IFF_LOWER_UP set. */
-	if (ifi->ifi_flags & IFF_MASTER && !(ifi->ifi_flags & IFF_LOWER_UP)) {
+	/* Virtual interfaces may not get a valid hardware address
+	 * at this point.
+	 * To trigger a valid hardware address pickup we need to pretend
+	 * that that don't exist until they have one. */
+	if (ifi->ifi_flags & IFF_MASTER && !hwaddr) {
 		handle_interface(-1, ifn);
 		return 1;
 	}