mirror of
				https://gitlab.labs.nic.cz/labs/bird.git
				synced 2024-05-11 16:54:54 +00:00 
			
		
		
		
	Proto struct now contain (down | starting | up) state.
This commit is contained in:
		@@ -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;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user