summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nest/iface.c5
-rw-r--r--nest/iface.h1
2 files changed, 4 insertions, 2 deletions
diff --git a/nest/iface.c b/nest/iface.c
index 3f21c43..41cb05b 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 c359449..b1984b3 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 *);