diff options
author | Martin Mares <mj@ucw.cz> | 2000-01-17 12:17:33 +0100 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 2000-01-17 12:17:33 +0100 |
commit | f7fcb752520759ab3aed274ca608e8e6f96665c8 (patch) | |
tree | 1697ba3e07ec676c52984974f76c726e3b3bad5e /sysdep/unix/krt.c | |
parent | 0ec90e9fc6f6bec2d0b64f6b9711a6d3edb4bd52 (diff) | |
download | bird-f7fcb752520759ab3aed274ca608e8e6f96665c8.tar bird-f7fcb752520759ab3aed274ca608e8e6f96665c8.zip |
Reconfiguration for device protocol.
Diffstat (limited to 'sysdep/unix/krt.c')
-rw-r--r-- | sysdep/unix/krt.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c index 7c92c55..bbca8cf 100644 --- a/sysdep/unix/krt.c +++ b/sysdep/unix/krt.c @@ -140,6 +140,24 @@ kif_shutdown(struct proto *P) return PS_DOWN; } +static int +kif_reconfigure(struct proto *p, struct proto_config *new) +{ + struct kif_config *o = (struct kif_config *) p->cf; + struct kif_config *n = (struct kif_config *) new; + + if (!kif_params_same(&o->iface, &n->iface)) + return 0; + if (o->scan_time != n->scan_time) + { + tm_stop(kif_scan_timer); + kif_scan_timer->recurrent = n->scan_time; + kif_scan(kif_scan_timer); + tm_start(kif_scan_timer, n->scan_time); + } + return 1; +} + struct protocol proto_unix_iface = { name: "Device", priority: 100, @@ -147,6 +165,7 @@ struct protocol proto_unix_iface = { init: kif_init, start: kif_start, shutdown: kif_shutdown, + reconfigure: kif_reconfigure, }; /* |