mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-19 01:28:44 +00:00
7e7790c61f
the kernel routing table as opposed to modifying it which is approximately the same on non-netlink systems, I've split the kernel routing table routines to read and write parts. To be implemented later ;-)
59 lines
963 B
C
59 lines
963 B
C
/*
|
|
* BIRD -- Linux Routing Table Scanning
|
|
*
|
|
* (c) 1998 Martin Mares <mj@ucw.cz>
|
|
*
|
|
* Can be freely distributed and used under the terms of the GNU GPL.
|
|
*/
|
|
|
|
#include <string.h>
|
|
|
|
#define LOCAL_DEBUG
|
|
|
|
#include "nest/bird.h"
|
|
#include "nest/iface.h"
|
|
#include "nest/route.h"
|
|
#include "nest/protocol.h"
|
|
#include "lib/timer.h"
|
|
#include "lib/unix.h"
|
|
#include "lib/krt.h"
|
|
|
|
#define SCANOPT struct krt_scan_params *p = &x->scanopt
|
|
|
|
static void
|
|
krt_scan_fire(timer *t)
|
|
{
|
|
DBG("Scanning kernel table...\n");
|
|
}
|
|
|
|
void
|
|
krt_scan_preconfig(struct krt_proto *x)
|
|
{
|
|
SCANOPT;
|
|
|
|
p->recurrence = 10; /* FIXME: use reasonable default value */
|
|
}
|
|
|
|
void
|
|
krt_scan_start(struct krt_proto *x)
|
|
{
|
|
SCANOPT;
|
|
timer *t = tm_new(x->p.pool);
|
|
|
|
p->timer = t;
|
|
t->hook = krt_scan_fire;
|
|
t->data = x;
|
|
t->recurrent = p->recurrence;
|
|
krt_scan_fire(t);
|
|
if (t->recurrent)
|
|
tm_start(t, t->recurrent);
|
|
}
|
|
|
|
void
|
|
krt_scan_shutdown(struct krt_proto *x)
|
|
{
|
|
SCANOPT;
|
|
|
|
tm_stop(p->timer);
|
|
}
|