aboutsummaryrefslogtreecommitdiff
path: root/net/bird
diff options
context:
space:
mode:
authorSergey Matveychuk <sem@FreeBSD.org>2011-10-10 09:43:21 +0000
committerSergey Matveychuk <sem@FreeBSD.org>2011-10-10 09:43:21 +0000
commit465bec37c02e0e78057d1d603edbd13fe22d848d (patch)
tree114b50e10a55d15b7a2e2d43e05dfcc402d82ffe /net/bird
parent4be6594a5334310c133f5fa42c63f3504ef24294 (diff)
downloadports-465bec37c02e0e78057d1d603edbd13fe22d848d.tar.gz
ports-465bec37c02e0e78057d1d603edbd13fe22d848d.zip
Notes
Diffstat (limited to 'net/bird')
-rw-r--r--net/bird/Makefile5
-rw-r--r--net/bird/distinfo4
-rw-r--r--net/bird/files/fibs.diff54
3 files changed, 31 insertions, 32 deletions
diff --git a/net/bird/Makefile b/net/bird/Makefile
index b189620b9a09..8615315a6463 100644
--- a/net/bird/Makefile
+++ b/net/bird/Makefile
@@ -6,7 +6,7 @@
#
PORTNAME= bird
-PORTVERSION= 1.3.3
+PORTVERSION= 1.3.4
CATEGORIES= net
MASTER_SITES= ftp://bird.network.cz/pub/bird/
@@ -40,8 +40,7 @@ post-install:
@${ECHO_MSG}
@${ECHO_MSG} " WARNING: Please take a look on kern/134931"
@${ECHO_MSG} " WARNING: before using multiple fibs in production!"
- @${ECHO_MSG} " 8.2-STABLE kernel patch available here:"
- @${ECHO_MSG} " http://static.ipfw.ru/patches/rtsock_82S-20110725.diff"
+ @${ECHO_MSG} " This PR was fixed in r225975(8.2-S) on Oct 4, 2011"
@${ECHO_MSG}
@${ECHO_MSG} =====================================================================
@${ECHO_MSG}
diff --git a/net/bird/distinfo b/net/bird/distinfo
index fa54d412b8e3..276df66fd0ac 100644
--- a/net/bird/distinfo
+++ b/net/bird/distinfo
@@ -1,2 +1,2 @@
-SHA256 (bird-1.3.3.tar.gz) = 9bdf465a3f5801c1c4cb93c13ae0a49a29f8b80773c1510d94970b681daaa89e
-SIZE (bird-1.3.3.tar.gz) = 758014
+SHA256 (bird-1.3.4.tar.gz) = 0b97c7486515b3ec81b34935859c0b66d92e2cc3f1f001e640d5d38e10c61dc6
+SIZE (bird-1.3.4.tar.gz) = 759228
diff --git a/net/bird/files/fibs.diff b/net/bird/files/fibs.diff
index e0858f924685..7dedf3a3b862 100644
--- a/net/bird/files/fibs.diff
+++ b/net/bird/files/fibs.diff
@@ -91,7 +91,7 @@ Index: sysdep/bsd/krt-sock.c
int
krt_capable(rte *e)
{
-@@ -53,6 +51,49 @@ krt_capable(rte *e)
+@@ -53,6 +51,49 @@
);
}
@@ -141,44 +141,44 @@ Index: sysdep/bsd/krt-sock.c
#define ROUNDUP(a) \
((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
-@@ -69,7 +110,7 @@ krt_capable(rte *e)
+@@ -69,7 +110,7 @@
body += l;}
- static void
+ static int
-krt_sock_send(int cmd, rte *e)
+krt_sock_send(struct krt_proto *p, int cmd, rte *e)
{
net *net = e->net;
rta *a = e->attrs;
-@@ -180,23 +221,23 @@ static void
+@@ -180,7 +221,7 @@
l = body - (char *)&msg;
msg.rtm.rtm_msglen = l;
- if ((l = write(rt_sock, (char *)&msg, l)) < 0) {
+ if ((l = write(p->rt_sock, (char *)&msg, l)) < 0) {
- log(L_ERR "KRT: Error sending route %I/%d to kernel", net->n.prefix, net->n.pxlen);
+ log(L_ERR "KRT: Error sending route %I/%d to kernel: %m", net->n.prefix, net->n.pxlen);
+ return -1;
}
+@@ -189,15 +230,15 @@
}
void
--krt_set_notify(struct krt_proto *p UNUSED, net *net, rte *new, rte *old)
-+krt_set_notify(struct krt_proto *p, net *net, rte *new, rte *old)
+-krt_set_notify(struct krt_proto *p UNUSED, net *n, rte *new, rte *old)
++krt_set_notify(struct krt_proto *p, net *n, rte *new, rte *old)
{
+ int err = 0;
+
if (old)
- {
- DBG("krt_remove_route(%I/%d)\n", net->n.prefix, net->n.pxlen);
-- krt_sock_send(RTM_DELETE, old);
-+ krt_sock_send(p, RTM_DELETE, old);
- }
+- krt_sock_send(RTM_DELETE, old);
++ krt_sock_send(p, RTM_DELETE, old);
+
if (new)
- {
- DBG("krt_add_route(%I/%d)\n", net->n.prefix, net->n.pxlen);
-- krt_sock_send(RTM_ADD, new);
-+ krt_sock_send(p, RTM_ADD, new);
- }
- }
+- err = krt_sock_send(RTM_ADD, new);
++ err = krt_sock_send(p, RTM_ADD, new);
-@@ -218,25 +259,34 @@ void
+ if (err < 0)
+ n->n.flags |= KRF_SYNC_ERROR;
+@@ -223,25 +264,34 @@
krt_set_start(struct krt_proto *x, int first UNUSED)
{
sock *sk_rt;
@@ -188,18 +188,18 @@ Index: sysdep/bsd/krt-sock.c
- if (ks_open_tried)
- return;
+-
+- ks_open_tried = 1;
+ if (!strcmp(x->p.proto->name, "Kernel"))
+ {
+ c = (struct krt_config *)x->p.cf;
+ fib = c->scan.table_id;
-- ks_open_tried = 1;
+- DBG("KRT: Opening kernel socket\n");
+ DBG("KRT: Opening kernel route socket to fib %d\n", fib);
+ if (x->p.debug & D_ROUTES)
+ log(L_TRACE "Opening route socket to fib %d", fib);
-- DBG("KRT: Opening kernel socket\n");
--
- if( (rt_sock = socket(PF_ROUTE, SOCK_RAW, AF_UNSPEC)) < 0)
+ old_fib = my_fib_set(fib);
+ }
@@ -221,7 +221,7 @@ Index: sysdep/bsd/krt-sock.c
}
#define SKIP(ARG...) do { DBG("KRT: Ignoring route - " ARG); return; } while(0)
-@@ -624,6 +674,8 @@ krt_sysctl_scan(struct proto *p, pool *pool, byte
+@@ -629,6 +679,8 @@
size_t obl, needed;
struct ks_msg *m;
int retries = 3;
@@ -230,7 +230,7 @@ Index: sysdep/bsd/krt-sock.c
mib[0] = CTL_NET;
mib[1] = PF_ROUTE;
-@@ -632,6 +684,17 @@ krt_sysctl_scan(struct proto *p, pool *pool, byte
+@@ -637,6 +689,17 @@
mib[4] = cmd;
mib[5] = 0;
@@ -248,7 +248,7 @@ Index: sysdep/bsd/krt-sock.c
try:
if (sysctl(mib, 6 , NULL , &needed, NULL, 0) < 0)
die("krt_sysctl_scan 1: %m");
-@@ -656,6 +719,7 @@ krt_sysctl_scan(struct proto *p, pool *pool, byte
+@@ -661,6 +724,7 @@
goto try;
log(L_ERR "KRT: Route scan failed");
@@ -256,7 +256,7 @@ Index: sysdep/bsd/krt-sock.c
return;
}
die("krt_sysctl_scan 2: %m");
-@@ -666,6 +730,8 @@ krt_sysctl_scan(struct proto *p, pool *pool, byte
+@@ -671,6 +735,8 @@
m = (struct ks_msg *)next;
krt_read_msg(p, m, 1);
}
@@ -265,7 +265,7 @@ Index: sysdep/bsd/krt-sock.c
}
static byte *krt_buffer = NULL;
-@@ -695,13 +761,16 @@ krt_set_construct(struct krt_config *c U
+@@ -700,13 +766,16 @@
}
void