diff --git a/nest/proto.c b/nest/proto.c index cbafeb39..99a4e85c 100644 --- a/nest/proto.c +++ b/nest/proto.c @@ -321,6 +321,7 @@ proto_notify_state(struct proto *p, unsigned ps) DBG("%s: Scheduling meal\n", p->name); if (p->proto->priority) /* FIXME: Terrible hack to get synchronous device/kernel startup! */ { + p->proto_state = ps; p->core_state = FS_FEEDING; proto_feed(p); return; diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c index d44a57d8..5fbd52c7 100644 --- a/sysdep/unix/krt.c +++ b/sysdep/unix/krt.c @@ -41,7 +41,7 @@ krt_flush_routes(struct krt_proto *p) { rta *a = e->attrs; if (a->source != RTS_DEVICE && a->source != RTS_INHERIT) - krt_set_notify(&p->p, e->net, e, NULL); + krt_set_notify(&p->p, e->net, NULL, e); } } FIB_WALK_END; @@ -221,7 +221,7 @@ krt_start(struct proto *P) { struct krt_proto *p = (struct krt_proto *) P; - p->accum_time = 0; + p->accum_time = KRT_CF->route_scan_time - KRT_CF->scan_time; krt_if_start(p); krt_scan_start(p);