static void ipv6cp_open(sessionidt s, tunnelidt t)
{
int i;
+ groupidt g;
LOG(3, s, t, "IPV6CP: Opened\n");
change_state(s, ipv6cp, Opened);
route6set(s, session[s].ipv6address, 128, 1);
}
+ if ((g = grp_groupbysession(s)))
+ {
+ grp_setgrouproute6(g, 1);
+ cluster_send_groupe(g);
+ }
+
// Send an initial RA (TODO: Should we send these regularly?)
send_ipv6_ra(s, t, NULL);
}
if (session[s].ipv6address.s6_addr[0])
{
if ((sessionbyipv6new(ip) != s) &&
- (ip.s6_addr[0] != 0xFE || ip.s6_addr[1] != 0x80 || ip.s6_addr16[1] != 0 || ip.s6_addr16[2] != 0 || ip.s6_addr16[3] != 0))
+ (ip.s6_addr[0] != 0xFE || ip.s6_addr[1] != 0x80 || ip.s6_addr16[1] != 0 || ip.s6_addr16[2] != 0 || ip.s6_addr16[3] != 0) &&
+ (!grp_groupbyipv6(ip)))
{
char str[INET6_ADDRSTRLEN];
LOG(5, s, t, "Dropping packet with spoofed IP %s\n",