Compare commits

...
3 Commits
Author SHA1 Message Date
Simon Kelley 8767ceecd4 Make libvirt-style access control work when only doing RA. 2012-05-21 20:54:19 +01:00
Simon Kelley 18c63eff8f Fix non-response to router-solicitations when
router-advertisement configured, but DHCPv6 not
configured.
2012-05-21 14:34:15 +01:00
Simon Kelley c64b7f6a78 Fix is_same_net6 - bugged if prefix length not divisible by 8. 2012-05-18 10:19:59 +01:00
5 changed files with 15 additions and 10 deletions

No files matched your search

+8
View File
@@ -8,6 +8,14 @@ version 2.62
advertisements with some configurations. Thanks to
Vladislav Grishenko for the patch.
Fixed bug which broke DHCPv6/RA with prefix lengths
which are not divisible by 8. Thanks to Andre Coetzee
for spotting this.
Fix non-response to router-solicitations when
router-advertisement configured, but DHCPv6 not
configured. Thanks to Marien Zwart for the patch.
version 2.61
Re-write interface discovery code on *BSD to use
+1 -1
View File
@@ -407,7 +407,7 @@ static int join_multicast_worker(struct in6_addr *local, int prefix,
return 1;
/* weird libvirt-inspired access control */
for (context = daemon->dhcp6; context; context = context->next)
for (context = daemon->ra_contexts; context; context = context->next)
if (!context->interface || strcmp(context->interface, ifrn_name) == 0)
break;
+4 -7
View File
@@ -849,14 +849,11 @@ int main (int argc, char **argv)
}
#ifdef HAVE_DHCP6
if (daemon->dhcp6)
{
if (FD_ISSET(daemon->dhcp6fd, &rset))
dhcp6_packet(now);
if (daemon->dhcp6 && FD_ISSET(daemon->dhcp6fd, &rset))
dhcp6_packet(now);
if (daemon->ra_contexts && FD_ISSET(daemon->icmp6fd, &rset))
icmp6_packet();
}
if (daemon->ra_contexts && FD_ISSET(daemon->icmp6fd, &rset))
icmp6_packet();
#endif
# ifdef HAVE_SCRIPT
+1 -1
View File
@@ -158,7 +158,7 @@ void icmp6_packet(void)
return;
/* weird libvirt-inspired access control */
for (context = daemon->dhcp6; context; context = context->next)
for (context = daemon->ra_contexts; context; context = context->next)
if (!context->interface || strcmp(context->interface, interface) == 0)
break;
+1 -1
View File
@@ -330,7 +330,7 @@ int is_same_net6(struct in6_addr *a, struct in6_addr *b, int prefixlen)
return 0;
if (pfbits == 0 ||
(a->s6_addr[pfbytes] >> (8 - pfbits) != b->s6_addr[pfbytes] >> (8 - pfbits)))
(a->s6_addr[pfbytes] >> (8 - pfbits) == b->s6_addr[pfbytes] >> (8 - pfbits)))
return 1;
return 0;