]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Handle disabled protocol instances.
authorMartin Mares <mj@ucw.cz>
Sun, 29 Nov 1998 22:01:33 +0000 (22:01 +0000)
committerMartin Mares <mj@ucw.cz>
Sun, 29 Nov 1998 22:01:33 +0000 (22:01 +0000)
nest/proto.c

index 6aa839900dddf25b7e75fc85f612807062b86e30..cb9b8440fdef3630238bb222131a508498b816db 100644 (file)
@@ -25,10 +25,9 @@ list inactive_proto_list;
 void *
 proto_new(struct protocol *pr, unsigned size)
 {
-  struct proto *p = mp_alloc(cfg_mem, size);
+  struct proto *p = cfg_allocz(size);
 
   debug("proto_new(%s)\n", pr->name);
-  bzero(p, sizeof(*p));
   p->proto = pr;
   p->name = pr->name;
   p->debug = pr->debug;
@@ -71,6 +70,8 @@ static void
 proto_start(struct proto *p)
 {
   rem_node(&p->n);
+  if (p->disabled)
+    return;
   p->state = PRS_STARTING;
   if (p->start)
     p->start(p);
@@ -103,7 +104,9 @@ protos_dump_all(void)
   WALK_LIST(p, proto_list)
     {
       debug("  protocol %s:\n", p->name);
-      if (p->dump)
+      if (p->disabled)
+       debug("\tDISABLED\n");
+      else if (p->dump)
        p->dump(p);
     }
   WALK_LIST(p, inactive_proto_list)