X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/aabf1d3fe915334f5ffab9b8e1076917add14358..c1d1c2a8c4f22c3911d392393072327b0e319c5e:/icmp.c?ds=inline diff --git a/icmp.c b/icmp.c index 93d00c1..fa947b7 100644 --- a/icmp.c +++ b/icmp.c @@ -1,7 +1,5 @@ // L2TPNS: icmp -char const *cvs_id_icmp = "$Id: icmp.c,v 1.9 2005-07-31 10:04:10 bodea Exp $"; - #include #include #include @@ -17,6 +15,7 @@ char const *cvs_id_icmp = "$Id: icmp.c,v 1.9 2005-07-31 10:04:10 bodea Exp $"; #include #include "l2tpns.h" +#include "pppoe.h" static uint16_t _checksum(uint8_t *addr, int count); @@ -102,7 +101,7 @@ static uint16_t _checksum(uint8_t *addr, int count) return htons((uint16_t) sum); } -void send_ipv6_ra(tunnelidt t, sessionidt s, struct in6_addr *ip) +void send_ipv6_ra(sessionidt s, tunnelidt t, struct in6_addr *ip) { struct nd_opt_prefix_info *pinfo; struct ipv6_pseudo_hdr *phdr; @@ -114,7 +113,7 @@ void send_ipv6_ra(tunnelidt t, sessionidt s, struct in6_addr *ip) LOG(3, s, t, "Sending IPv6 RA\n"); memset(b, 0, sizeof(b)); - o = makeppp(b, sizeof(b), 0, 0, t, s, PPPIPV6); + o = makeppp(b, sizeof(b), 0, 0, s, t, PPPIPV6, 0, 0, 0); if (!o) { @@ -132,7 +131,9 @@ void send_ipv6_ra(tunnelidt t, sessionidt s, struct in6_addr *ip) *(o+9) = 0x80; *(o+23) = 1; if (ip != NULL) + { memcpy(o+24, ip, 16); // dest = ip + } else { // FF02::1 - all hosts