[libvirt] [PATCH 06/13] Make virtual network netmasks optional
Laine Stump
laine at laine.org
Wed Dec 22 16:44:05 UTC 2010
On 12/22/2010 11:34 AM, Laine Stump wrote:
> On 12/20/2010 07:13 PM, Eric Blake wrote:
>> On 12/20/2010 01:03 AM, Laine Stump wrote:
>>> When a netmask isn't specified for an IPv4 address, one can be implied
>>> based on what network class range the address is in. The
>>> virNetworkDefPrefix function does this for us, so netmask isn't
>>> required.
>>> ---
>>> src/conf/network_conf.c | 30 ++++++++++++++++--------------
>>> 1 files changed, 16 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
>>> index b6ac4e3..09566ca 100644
>>> --- a/src/conf/network_conf.c
>>> +++ b/src/conf/network_conf.c
>>> @@ -461,19 +461,14 @@ virNetworkDefParseXML(xmlXPathContextPtr ctxt)
>>> def->delay = 0;
>>>
>>> ipAddress = virXPathString("string(./ip[1]/@address)", ctxt);
>>> - netmask = virXPathString("string(./ip[1]/@netmask)", ctxt);
>>> - if (ipAddress&&
>>> - netmask) {
>>> + if (ipAddress) {
>> Before this patch, if you specified one but not the other, then neither
>> was recognized. Now, if you specify ipAddress but not netmask,
>> ipAddress is still recognized (good), but if you specify netmask but not
>> ipAddress, you've caused the def file to be in a state that wasn't
>> possible before (potentially bad). Should you also add a sanity check
>> that declares the configuration invalid if netmask is specified without
>> ipAddress, so you don't have to worry about it in the rest of the
>> code base?
>
>
> Yes, good idea. I changed it to give an error if netmask (or prefix,
> in later patches) is provided without an IP address.
>
> I also noticed a pre-existing memory leak during error exits, and am
> adding a fix for that to the series.
Heh. Getting ahead of myself...
Continuing the git rebase after making those changes, I noticed that 1)
all this code moves into a separate function in patch 09/13, and 2) that
patch already checks for netmask w/o an IP address and gives a proper
error message. For those reasons, I'm going to leave this patch as-is
(since it will only be there to satisfy bisects).
More information about the libvir-list
mailing list