diff options
author | Martin Mares <mj@ucw.cz> | 1998-10-19 19:45:29 +0200 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1998-10-19 19:45:29 +0200 |
commit | f184ea6f7e1233403d06fa4615cb9f27f9d9a839 (patch) | |
tree | 93d6ba41c218048364e417c012967b6fb696125f /nest | |
parent | 16a8ba30a97d82f8e43385d1a9b116fdb16746a8 (diff) | |
download | bird-f184ea6f7e1233403d06fa4615cb9f27f9d9a839.tar bird-f184ea6f7e1233403d06fa4615cb9f27f9d9a839.zip |
Proto struct now contain (down | starting | up) state.
Diffstat (limited to 'nest')
-rw-r--r-- | nest/proto.c | 2 | ||||
-rw-r--r-- | nest/protocol.h | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/nest/proto.c b/nest/proto.c index f142a77..0760130 100644 --- a/nest/proto.c +++ b/nest/proto.c @@ -71,10 +71,12 @@ static void proto_start(struct proto *p) { rem_node(&p->n); + p->state = PRS_STARTING; if (p->start) p->start(p); if_feed_baby(p); rt_feed_baby(p); + p->state = PRS_UP; add_tail(&proto_list, &p->n); } diff --git a/nest/protocol.h b/nest/protocol.h index 9a0ea98..f138d86 100644 --- a/nest/protocol.h +++ b/nest/protocol.h @@ -59,6 +59,7 @@ struct proto { unsigned debug; /* Debugging flags */ pool *pool; /* Local objects */ unsigned preference; /* Default route preference */ + unsigned state; /* PRS_... */ void (*if_notify)(struct proto *, unsigned flags, struct iface *new, struct iface *old); void (*rt_notify)(struct proto *, struct network *net, struct rte *new, struct rte *old); @@ -80,6 +81,10 @@ struct proto { /* Hic sunt protocol-specific data */ }; +#define PRS_DOWN 0 /* Inactive */ +#define PRS_STARTING 1 +#define PRS_UP 2 + void *proto_new(struct protocol *, unsigned size); extern list proto_list, inactive_proto_list; |