When reading in an XML definition for a SCSI target device, the name property of struct scsi_target refers to the @target element. Let's fix this obvious typo and also extend the XML schema to provide validation. Signed-off-by: Bjoern Walk <bwalk@xxxxxxxxxxxxxxxxxx> --- docs/schemas/nodedev.rng | 11 +++++++++++ src/conf/node_device_conf.c | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/schemas/nodedev.rng b/docs/schemas/nodedev.rng index 949811c..d937513 100644 --- a/docs/schemas/nodedev.rng +++ b/docs/schemas/nodedev.rng @@ -40,6 +40,7 @@ <ref name="capusbinterface"/> <ref name="capnet"/> <ref name="capscsihost"/> + <ref name="capscsitarget"/> <ref name="capscsi"/> <ref name="capstorage"/> </choice> @@ -382,6 +383,16 @@ </optional> </define> + <define name='capscsitarget'> + <attribute name='type'> + <value>scsi_target</value> + </attribute> + + <element name='target'> + <text/> + </element> + </define> + <define name='capscsi'> <attribute name='type'> <value>scsi</value> diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c index 611045c..f74b34d 100644 --- a/src/conf/node_device_conf.c +++ b/src/conf/node_device_conf.c @@ -822,7 +822,7 @@ virNodeDevCapSCSITargetParseXML(xmlXPathContextPtr ctxt, orignode = ctxt->node; ctxt->node = node; - data->scsi_target.name = virXPathString("string(./name[1])", ctxt); + data->scsi_target.name = virXPathString("string(./target[1])", ctxt); if (!data->scsi_target.name) { virReportError(VIR_ERR_INTERNAL_ERROR, _("no target name supplied for '%s'"), -- 2.6.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list