Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 637483 Details for
Bug 867054
dhcp6 support fixes
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
eliminate filters which prevented valid DHCP6 requests from being serviced
dnsmasq-gc-dhcp6fix-2.patch (text/plain), 2.44 KB, created by
Gene Czarcinski
on 2012-11-03 13:01:05 UTC
(
hide
)
Description:
eliminate filters which prevented valid DHCP6 requests from being serviced
Filename:
MIME Type:
Creator:
Gene Czarcinski
Created:
2012-11-03 13:01:05 UTC
Size:
2.44 KB
patch
obsolete
>diff -urp dnsmasq-2.63-orig.5/src/dhcp6.c dnsmasq-2.63/src/dhcp6.c >--- dnsmasq-2.63-orig.5/src/dhcp6.c 2012-11-03 08:01:20.360941075 -0400 >+++ dnsmasq-2.63/src/dhcp6.c 2012-11-03 08:39:26.133270898 -0400 >@@ -21,7 +21,7 @@ > struct iface_param { > struct dhcp_context *current; > struct in6_addr fallback; >- int ind; >+ int ind, addr_match; > }; > > static int complete_context6(struct in6_addr *local, int prefix, >@@ -87,7 +87,6 @@ void dhcp6_packet(time_t now) > char control6[CMSG_SPACE(sizeof(struct in6_pktinfo))]; > } control_u; > struct sockaddr_in6 from; >- struct all_addr dest; > ssize_t sz; > struct ifreq ifr; > struct iname *tmp; >@@ -114,33 +113,52 @@ void dhcp6_packet(time_t now) > p.c = CMSG_DATA(cmptr); > > if_index = p.p->ipi6_ifindex; >- dest.addr.addr6 = p.p->ipi6_addr; > } > > if (!indextoname(daemon->dhcp6fd, if_index, ifr.ifr_name)) > return; > >- if (!iface_check(AF_INET6, (struct all_addr *)&dest, ifr.ifr_name)) >- return; >- >+ for (tmp = daemon->if_except; tmp; tmp = tmp->next) >+ if (tmp->name && (strcmp(tmp->name, ifr.ifr_name) == 0)) >+ return; >+ > for (tmp = daemon->dhcp_except; tmp; tmp = tmp->next) > if (tmp->name && (strcmp(tmp->name, ifr.ifr_name) == 0)) > return; > >- /* unlinked contexts are marked by context->current == context */ >- for (context = daemon->dhcp6; context; context = context->next) >- { >- context->current = context; >- memset(&context->local6, 0, IN6ADDRSZ); >- } >- > parm.current = NULL; > parm.ind = if_index; >+ parm.addr_match = 0; > memset(&parm.fallback, 0, IN6ADDRSZ); >+ >+ for (context = daemon->dhcp6; context; context = context->next) >+ if (IN6_IS_ADDR_UNSPECIFIED(&context->start6) && context->prefix == 0) >+ { >+ /* wildcard context for DHCP-stateless only */ >+ parm.current = context; >+ context->current = NULL; >+ } >+ else >+ { >+ /* unlinked contexts are marked by context->current == context */ >+ context->current = context; >+ memset(&context->local6, 0, IN6ADDRSZ); >+ } > > if (!iface_enumerate(AF_INET6, &parm, complete_context6)) > return; > >+ if (daemon->if_names || daemon->if_addrs) >+ { >+ >+ for (tmp = daemon->if_names; tmp; tmp = tmp->next) >+ if (tmp->name && (strcmp(tmp->name, ifr.ifr_name) == 0)) >+ break; >+ >+ if (!tmp && !parm.addr_match) >+ return; >+ } >+ > lease_prune(NULL, now); /* lose any expired leases */ > > port = dhcp6_reply(parm.current, if_index, ifr.ifr_name, &parm.fallback,
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 867054
:
628246
|
628247
|
637482
|
637483
|
640770