summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2008-11-05 21:39:04 +0100
committerOndrej Zajicek <santiago@crfreenet.org>2008-11-05 21:39:04 +0100
commit1389f3699fc643dac6fd4d2f19fb59da3624a2fa (patch)
treef623daeb3bfcf8dc6c9a6b670e93bab6efa34b25
parentbaa9ef18c62612bd91a8362ef20427046105c113 (diff)
downloadbird-1389f3699fc643dac6fd4d2f19fb59da3624a2fa.tar
bird-1389f3699fc643dac6fd4d2f19fb59da3624a2fa.zip
Fixes bugs in IPv6 code caused by recent commits.
-rw-r--r--proto/bgp/packets.c2
-rw-r--r--sysdep/unix/io.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/proto/bgp/packets.c b/proto/bgp/packets.c
index 84e6ffd..00cdf03 100644
--- a/proto/bgp/packets.c
+++ b/proto/bgp/packets.c
@@ -700,7 +700,7 @@ bgp_do_rx_update(struct bgp_conn *conn,
/* Create fake NEXT_HOP attribute */
if (len < 1 || (*x != 16 && *x != 32) || len < *x + 2)
goto bad;
- bgp_attach_attr_ip(&a0->eattrs, bgp_linpool, BA_NEXT_HOP, x[1]);
+ memcpy(bgp_attach_attr_wa(&a0->eattrs, bgp_linpool, BA_NEXT_HOP, 16), x+1, 16);
len -= *x + 2;
x += *x + 1;
diff --git a/sysdep/unix/io.c b/sysdep/unix/io.c
index e67ed80..ddb3c4d 100644
--- a/sysdep/unix/io.c
+++ b/sysdep/unix/io.c
@@ -616,7 +616,7 @@ sk_set_ttl_int(sock *s)
int one = 1;
#ifdef IPV6
if (s->type != SK_UDP_MC && s->type != SK_IP_MC &&
- setsockopt(fd, SOL_IPV6, IPV6_UNICAST_HOPS, &s->ttl, sizeof(s->ttl)) < 0)
+ setsockopt(s->fd, SOL_IPV6, IPV6_UNICAST_HOPS, &s->ttl, sizeof(s->ttl)) < 0)
return "IPV6_UNICAST_HOPS";
#else
if (setsockopt(s->fd, SOL_IP, IP_TTL, &s->ttl, sizeof(s->ttl)) < 0)