Proto struct now contain (down | starting | up) state.
This commit is contained in:
parent
16a8ba30a9
commit
f184ea6f7e
2 changed files with 7 additions and 0 deletions
|
@ -71,10 +71,12 @@ static void
|
||||||
proto_start(struct proto *p)
|
proto_start(struct proto *p)
|
||||||
{
|
{
|
||||||
rem_node(&p->n);
|
rem_node(&p->n);
|
||||||
|
p->state = PRS_STARTING;
|
||||||
if (p->start)
|
if (p->start)
|
||||||
p->start(p);
|
p->start(p);
|
||||||
if_feed_baby(p);
|
if_feed_baby(p);
|
||||||
rt_feed_baby(p);
|
rt_feed_baby(p);
|
||||||
|
p->state = PRS_UP;
|
||||||
add_tail(&proto_list, &p->n);
|
add_tail(&proto_list, &p->n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,6 +59,7 @@ struct proto {
|
||||||
unsigned debug; /* Debugging flags */
|
unsigned debug; /* Debugging flags */
|
||||||
pool *pool; /* Local objects */
|
pool *pool; /* Local objects */
|
||||||
unsigned preference; /* Default route preference */
|
unsigned preference; /* Default route preference */
|
||||||
|
unsigned state; /* PRS_... */
|
||||||
|
|
||||||
void (*if_notify)(struct proto *, unsigned flags, struct iface *new, struct iface *old);
|
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);
|
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 */
|
/* 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);
|
void *proto_new(struct protocol *, unsigned size);
|
||||||
|
|
||||||
extern list proto_list, inactive_proto_list;
|
extern list proto_list, inactive_proto_list;
|
||||||
|
|
Loading…
Reference in a new issue