{
struct iface *i;
- debug("Known network interfaces:\n\n");
+ debug("Known network interfaces:\n");
WALK_LIST(i, iface_list)
if_dump(i);
debug("\n");
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
#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 *);