Commit f7fcb752 authored by Martin Mareš's avatar Martin Mareš

Reconfiguration for device protocol.

parent 0ec90e9f
......@@ -23,4 +23,6 @@ static inline void krt_if_construct(struct kif_config *c) { };
static inline void krt_if_shutdown(struct kif_proto *p) { };
static inline void krt_if_io_init(void) { };
static inline int kif_params_same(struct krt_if_params *old, struct krt_if_params *new) { return 1; }
#endif
/*
* BIRD -- Unix Kernel Interface Syncer
*
* (c) 1998--1999 Martin Mares <mj@ucw.cz>
* (c) 1998--2000 Martin Mares <mj@ucw.cz>
*
* Can be freely distributed and used under the terms of the GNU GPL.
*/
......@@ -17,4 +17,6 @@ struct krt_if_status {
extern int if_scan_sock;
static inline int kif_params_same(struct krt_if_params *old, struct krt_if_params *new) { return 1; }
#endif
......@@ -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,
};
/*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment