[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] 2/4 Add conf parsing and freeing



On 10/21/2010 02:16 PM, Daniel Veillard wrote:
  This lacks the saving of the smbios data, should not be hard really,
and the parsing is rather trivial, the data structures follow the XML
format:

Daniel


+static void virSmbiosEntriesFree(virSmbiosEntryPtr cur)

Should this function be added to the list of useless_free_options in cfg.mk?

+{
+    virSmbiosEntryPtr next;
+
+    if (cur == NULL)
+        return;

Redundant, given that

+
+    while (cur != NULL) {

this safely skips a NULL argument.

@@ -3341,6 +3385,150 @@ error:
      goto cleanup;
  }

+static virSmbiosEntryPtr
+virSmbiosEntryParseXML(xmlXPathContextPtr ctxt)
+{
+    char *name, *value;
+    virSmbiosEntryPtr def;
+
+    name = virXPathString("string(./@name)", ctxt);
+    if (name == NULL) {
+        virDomainReportError(VIR_ERR_XML_ERROR, "%s",
+                  _("XML element 'entry' requires a 'name' attrbute"));

s/attrbute/attribute/

+
+static virSmbiosBlockPtr
+virSmbiosBlockParseXML(xmlXPathContextPtr ctxt)
+{
+    virSmbiosBlockPtr def;
+    virSmbiosEntryPtr cur, next;
+    xmlNodePtr *nodes = NULL;
+    int n;
+    unsigned int i;
+    long type;
+
+    if (virXPathLong("string(./@type)", ctxt,&type)<  0) {
+        virDomainReportError(VIR_ERR_XML_ERROR, "%s",
+                  _("XML element 'table' requires a numeric 'type' attrbute"));

s/attrbute/attribute/

+        return(NULL);
+    }
+    if ((type<  0) || (type>  32)) {
+        virDomainReportError(VIR_ERR_XML_ERROR,
+              _("XML 'type' attribute on 'table' out of 0..32 range got %ld"),
+                type);
+        return(NULL);
+    }

Should you also be checking for duplicate types, or is it okay to do:

  <smbios>
    <table type="0">
      <entry name="Vendor">QEmu/KVM</entry>
    </table>
    <table type="0">
      <entry name="Version">0.13</entry>
    </table>
  </smbios>

--
Eric Blake   eblake redhat com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]