X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/afc8f4c6c019f3cd4c8c28fbf7948b594de08658..4b119fa4bf3455ce5eb17e9bccfd2eb1baac7f12:/icmp.c?ds=sidebyside diff --git a/icmp.c b/icmp.c index a8f5ba7..5f05127 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 @@ -15,8 +13,10 @@ char const *cvs_id_icmp = "$Id: icmp.c,v 1.9 2005/07/31 10:04:10 bodea Exp $"; #include #include #include +#include #include "l2tpns.h" +#include "pppoe.h" static uint16_t _checksum(uint8_t *addr, int count); @@ -102,7 +102,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 +114,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 +132,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