diff --git a/nest/iface.c b/nest/iface.c index 3f21c435..41cb05bb 100644 --- a/nest/iface.c +++ b/nest/iface.c @@ -193,7 +193,7 @@ if_dump_all(void) { struct iface *i; - debug("Known network interfaces:\n\n"); + debug("Known network interfaces:\n"); WALK_LIST(i, iface_list) if_dump(i); debug("\n"); @@ -292,7 +292,8 @@ newif: memcpy(i, new, sizeof(*i)); i->flags |= IF_UPDATED; add_tail(&iface_list, &i->n); - if_notify_change(IF_CHANGE_UP | IF_CHANGE_FLAGS | IF_CHANGE_MTU, NULL, i); + if_notify_change(IF_CHANGE_CREATE | ((i->flags & IF_UP) ? IF_CHANGE_UP : 0) + | IF_CHANGE_FLAGS | IF_CHANGE_MTU, NULL, i); } void diff --git a/nest/iface.h b/nest/iface.h index c3594493..b1984b39 100644 --- a/nest/iface.h +++ b/nest/iface.h @@ -44,6 +44,7 @@ struct iface { #define IF_CHANGE_DOWN 2 #define IF_CHANGE_FLAGS 4 /* Can be converted to down/up internally */ #define IF_CHANGE_MTU 8 +#define IF_CHANGE_CREATE 16 /* Seen this interface for the first time */ void if_init(void); void if_dump(struct iface *);