diff options
author | Martin Mares <mj@ucw.cz> | 1998-06-04 22:30:11 +0200 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1998-06-04 22:30:11 +0200 |
commit | 620a355a15d65a8a2980f98b2de3e7d04c3dab62 (patch) | |
tree | 8c616039ccb93a8fcde4e56359efcb231211dcee /nest | |
parent | 236d4eb8ce5dc894e97bcf1f561186d41c361cea (diff) | |
download | bird-620a355a15d65a8a2980f98b2de3e7d04c3dab62.tar bird-620a355a15d65a8a2980f98b2de3e7d04c3dab62.zip |
Now sending IF_CHANGE_CREATE when a new interface appears and IF_CHANGE_UP
only if it's really up.
Diffstat (limited to 'nest')
-rw-r--r-- | nest/iface.c | 5 | ||||
-rw-r--r-- | nest/iface.h | 1 |
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 *); |