
On 02/18/2013 07:38 PM, Laine Stump wrote:
On 02/15/2013 02:02 PM, Gene Czarcinski wrote:
Originally, only a host name was used to associate a DHCPv6 request with a specific IPv6 address. Further testing demonstrates that this is an unreliable method and, instead, a client-id or DUID needs to be used. According to DHCPv6 standards, this id can be a duid-LLT, duid-LL, or duid-UUID even though dnsmasq will accept almost any text string.
Other than the suggestion to use strcspn() instead of a while loop, this all looks fine to me. ACK with that change made. If you (or someone else) wants to ACK the short interdiff I've attached that makes that change, I'll push it.
From 0b2f2f0794e931af901bc31e4fe6eadc799bee33 Mon Sep 17 00:00:00 2001 From: Laine Stump <laine@laine.org> Date: Mon, 18 Feb 2013 21:33:49 -0500 Subject: [PATCH] Changes to squash into "use client id for IPv6 DHCP host definition"
--- src/conf/network_conf.c | 15 +++++---------- src/util/virdnsmasq.c | 3 +-- 2 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index 8657284..12bf4d7 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -710,16 +710,11 @@ virNetworkDHCPHostDefParseXML(const char *networkName,
id = virXMLPropString(node, "id"); if (id) { - char *cp = id; - - while (*cp) { - if ((*cp != ':') && (!c_isxdigit(*cp))) { - virReportError(VIR_ERR_XML_ERROR, - _("Cannot use id '%s' in network '%s'"), - id, networkName); - goto cleanup; - } - cp++; + char *cp = id + strcspn(id, "0123456789abcdefABCDEF:"); + if (*cp) { + virReportError(VIR_ERR_XML_ERROR, + _("Invalid character '%c' in id '%s' of network '%s'"), + *cp, id, networkName);
That's not quite right. You want to use strspn(), not strcspn().
+++ b/src/util/virdnsmasq.c @@ -328,8 +328,7 @@ hostsfileAdd(dnsmasqHostsfile *hostsfile, id, ipstr) < 0) goto alloc_error; } - } - else if (name && mac) { + } else if (name && mac) {
This hunk is good. ACK to your interdiff once you use the correct function. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org