Merge branch 'master' into dev
This commit is contained in:
commit
dd7b4a1384
3 changed files with 5 additions and 142 deletions
8
NEWS
8
NEWS
|
@ -1,13 +1,13 @@
|
||||||
Version 1.0.16 (2009-06-25)
|
Version 1.1.0 (2009-06-28)
|
||||||
o Parametrized pair and path mask expessions in the filter language.
|
o Parametrized pair and path mask expressions in the filter language.
|
||||||
o Transparent pipe mode allows to implement BGP route server with
|
o Transparent pipe mode allows to implement BGP route server with
|
||||||
independent route policy for each peer.
|
independent route policy for each peer.
|
||||||
o Kernel route table synchronization does not allow overwriting
|
o Kernel route table synchronization does not allow overwriting
|
||||||
of alien routes.
|
of alien routes.
|
||||||
o Configureable BGP import route limits.
|
o Configurable BGP import route limits.
|
||||||
o During BGP error delay, incoming connections are rejected.
|
o During BGP error delay, incoming connections are rejected.
|
||||||
o BGP route statistics.
|
o BGP route statistics.
|
||||||
o Better support for multple network addresses on OSPF interfaces.
|
o Better support for multiple network addresses on OSPF interfaces.
|
||||||
o As usual, miscellaneous bugfixes.
|
o As usual, miscellaneous bugfixes.
|
||||||
|
|
||||||
Version 1.0.15 (2009-05-25)
|
Version 1.0.15 (2009-05-25)
|
||||||
|
|
|
@ -1,137 +0,0 @@
|
||||||
/*
|
|
||||||
* BIRD -- *BSD Table Scanning
|
|
||||||
*
|
|
||||||
* (c) 2004 Ondrej Filip <feela@network.cz>
|
|
||||||
*
|
|
||||||
* Can be freely distributed and used under the terms of the GNU GPL.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <sys/param.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/sysctl.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <net/route.h>
|
|
||||||
|
|
||||||
#undef LOCAL_DEBUG
|
|
||||||
#define LOCAL_DEBUG
|
|
||||||
|
|
||||||
#include "nest/bird.h"
|
|
||||||
#include "nest/route.h"
|
|
||||||
#include "nest/protocol.h"
|
|
||||||
#include "nest/iface.h"
|
|
||||||
#include "lib/timer.h"
|
|
||||||
#include "lib/unix.h"
|
|
||||||
#include "lib/krt.h"
|
|
||||||
#include "lib/string.h"
|
|
||||||
|
|
||||||
static int krt_scan_fd = -1;
|
|
||||||
|
|
||||||
struct iface *
|
|
||||||
krt_temp_iface(struct krt_proto *p, char *name)
|
|
||||||
{
|
|
||||||
struct iface *i;
|
|
||||||
|
|
||||||
WALK_LIST(i, p->scan.temp_ifs)
|
|
||||||
if (!strcmp(i->name, name))
|
|
||||||
return i;
|
|
||||||
i = mb_allocz(p->p.pool, sizeof(struct iface));
|
|
||||||
strcpy(i->name, name);
|
|
||||||
add_tail(&p->scan.temp_ifs, &i->n);
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
krt_scan_construct(struct krt_config *c)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
krt_scan_preconfig(struct config *c)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
krt_scan_postconfig(struct krt_config *c)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
krt_scan_start(struct krt_proto *x, int first)
|
|
||||||
{
|
|
||||||
init_list(&x->scan.temp_ifs);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
krt_scan_shutdown(struct krt_proto *x, int last)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
krt_sysctl_scan(struct proto *p, pool *pool, byte **buf, int *bl, int cmd)
|
|
||||||
{
|
|
||||||
byte *next;
|
|
||||||
int obl, needed, mib[6], on;
|
|
||||||
struct ks_msg *m;
|
|
||||||
|
|
||||||
mib[0] = CTL_NET;
|
|
||||||
mib[1] = PF_ROUTE;
|
|
||||||
mib[2] = 0;
|
|
||||||
mib[3] = BIRD_PF;
|
|
||||||
mib[4] = cmd;
|
|
||||||
mib[5] = 0;
|
|
||||||
|
|
||||||
if( sysctl(mib, 6 , NULL , &needed, NULL, 0) < 0)
|
|
||||||
{
|
|
||||||
die("RT scan...");
|
|
||||||
}
|
|
||||||
|
|
||||||
obl = *bl;
|
|
||||||
|
|
||||||
while(needed > *bl) *bl *= 2;
|
|
||||||
while(needed < (*bl/2)) *bl /= 2;
|
|
||||||
|
|
||||||
if( (obl!=*bl) || !*buf)
|
|
||||||
{
|
|
||||||
if(*buf) mb_free(*buf);
|
|
||||||
if( (*buf = mb_alloc(pool, *bl)) == NULL ) die("RT scan buf alloc");
|
|
||||||
}
|
|
||||||
|
|
||||||
on = needed;
|
|
||||||
|
|
||||||
if( sysctl(mib, 6 , *buf, &needed, NULL, 0) < 0)
|
|
||||||
{
|
|
||||||
if(on != needed) return; /* The buffer size changed since last sysctl */
|
|
||||||
die("RT scan 2");
|
|
||||||
}
|
|
||||||
|
|
||||||
for (next = *buf; next < (*buf + needed); next += m->rtm.rtm_msglen)
|
|
||||||
{
|
|
||||||
m = (struct ks_msg *)next;
|
|
||||||
krt_read_msg(p, m, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
krt_scan_fire(struct krt_proto *p)
|
|
||||||
{
|
|
||||||
static byte *buf = NULL;
|
|
||||||
static int bl = 32768;
|
|
||||||
krt_sysctl_scan((struct proto *)p , p->krt_pool, &buf, &bl, NET_RT_DUMP);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
krt_if_scan(struct kif_proto *p)
|
|
||||||
{
|
|
||||||
static byte *buf = NULL;
|
|
||||||
static int bl = 4096;
|
|
||||||
struct proto *P = (struct proto *)p;
|
|
||||||
if_start_update();
|
|
||||||
krt_sysctl_scan(P, P->pool, &buf, &bl, NET_RT_IFLIST);
|
|
||||||
if_end_update();
|
|
||||||
}
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
#define _BIRD_CONFIG_H_
|
#define _BIRD_CONFIG_H_
|
||||||
|
|
||||||
/* BIRD version */
|
/* BIRD version */
|
||||||
#define BIRD_VERSION "1.0.16"
|
#define BIRD_VERSION "1.1.0"
|
||||||
|
|
||||||
/* Include parameters determined by configure script */
|
/* Include parameters determined by configure script */
|
||||||
#include "sysdep/autoconf.h"
|
#include "sysdep/autoconf.h"
|
||||||
|
|
Loading…
Reference in a new issue