[RFC 07/21] conf: Replace virNetworkDNSTxtDefParseXML(hardcoded) with namesake(generated)

Shi Lei shi_lei at massclouds.com
Tue Jun 30 16:07:17 UTC 2020


>On Wed, Jun 10, 2020 at 09:20:35AM +0800, Shi Lei wrote:
>> Signed-off-by: Shi Lei <shi_lei at massclouds.com>
>> ---
>>  po/POTFILES.in           |  1 +
>>  src/conf/Makefile.inc.am |  2 ++
>>  src/conf/network_conf.c  | 47 ++++++----------------------------------
>>  src/conf/network_conf.h  |  8 ++++---
>>  4 files changed, 15 insertions(+), 43 deletions(-)
>
>> diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
>> index 47aaef3..964a8a7 100644
>> --- a/src/conf/network_conf.c
>> +++ b/src/conf/network_conf.c
>> @@ -174,14 +174,6 @@ virNetworkIPDefClear(virNetworkIPDefPtr def)
>>  }
>> 
>> 
>> -static void
>> -virNetworkDNSTxtDefClear(virNetworkDNSTxtDefPtr def)
>> -{
>> -    VIR_FREE(def->name);
>> -    VIR_FREE(def->value);
>> -}
>> -
>> -
>>  static void
>>  virNetworkDNSHostDefClear(virNetworkDNSHostDefPtr def)
>>  {
>> @@ -903,7 +895,7 @@ virNetworkDNSSrvDefParseXML(const char *networkName,
>>  }
>> 
>> 
>> -static int
>> +int
>>  virNetworkDNSTxtDefParseXMLHook(xmlNodePtr node G_GNUC_UNUSED,
>>                                  virNetworkDNSTxtDefPtr def,
>>                                  const char *networkName,
>> @@ -943,33 +935,6 @@ virNetworkDNSTxtDefParseXMLHook(xmlNodePtr node G_GNUC_UNUSED,
>>  }
>> 
>> 
>> -static int
>> -virNetworkDNSTxtDefParseXML(const char *networkName,
>> -                            xmlNodePtr node,
>> -                            virNetworkDNSTxtDefPtr def,
>> -                            bool partialOkay)
>> -{
>> -    if (!(def->name = virXMLPropString(node, "name"))) {
>> -        virReportError(VIR_ERR_XML_DETAIL,
>> -                       _("missing required name attribute in DNS TXT record "
>> -                         "of network %s"), networkName);
>> -        goto error;
>> -    }
>> -
>> -    def->value = virXMLPropString(node, "value");
>> -
>> -    if (virNetworkDNSTxtDefParseXMLHook(node, def, networkName,
>> -                                        &partialOkay) < 0)
>> -        goto error;
>> -
>> -    return 0;
>> -
>> - error:
>> -    virNetworkDNSTxtDefClear(def);
>> -    return -1;
>> -}
>
>Comparing this old code to the new generated code:
>
>
>int
>virNetworkDNSTxtDefParseXML(xmlNodePtr node,
>                            virNetworkDNSTxtDefPtr def,
>                            const char *instname,
>                            void *opaque)
>{
>    g_autofree char *nameStr = NULL;
>    g_autofree char *valueStr = NULL;
>    VIR_USED(instname);
>    VIR_USED(opaque);
>
>    if (!def)
>        goto error;
>
>    nameStr = virXMLPropString(node, "name");
>    if (nameStr == NULL) {
>        virReportError(VIR_ERR_XML_ERROR,
>                       _("Missing 'name' setting in '%s'"),
>                       instname);
>        goto error;
>    }
>
>    def->name = g_strdup(nameStr);
>
>    valueStr = virXMLPropString(node, "value");
>    if (valueStr)
>        def->value = g_strdup(valueStr);
>
>    if (virNetworkDNSTxtDefParseXMLHook(node, def, instname, opaque) < 0)
>        goto error;
>
>    return 0;
>
> error:
>   
>    virNetworkDNSTxtDefClear(def);
>    return -1;
>}
>
>
>The main changes I'd suggest are
>
>*  Change
> 
>        virReportError(VIR_ERR_XML_ERROR,
>                       _("Missing 'name' setting in '%s'"),
>                       instname);
>
>   To
>
> 
>        virReportError(VIR_ERR_XML_ERROR,
>                       _("Missing '%s' attribute in '%s'"),
>                       "name", instname);
>
>  so that it reduces the number of translatable strings
>
>* Remove the extra g_strdup's
>
>
>In an earlier patch I complained about your use of Clear()
>functions. Now I see this patch though, I understand why
>you were using Clear() - this pointer is just a member of
>an array, so we can't directly Free() it.  So I withdraw
>my objection on the earlier patch about use of Clear()
> 

Got it!

Regards,
Shi Lei

>
>
>Regards,
>Daniel
>--
>|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
>|: https://libvirt.org -o- https://fstop138.berrange.com :|
>|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
>




More information about the libvir-list mailing list