---
src/libvirt-domain.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index 8e94541..e56a98e 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -455,6 +455,7 @@ for_each_disk (guestfs_h *g,
CLEANUP_XMLXPATHFREEOBJECT xmlXPathObjectPtr xpfilename = NULL;
CLEANUP_XMLXPATHFREEOBJECT xmlXPathObjectPtr xpprotocol = NULL;
CLEANUP_XMLXPATHFREEOBJECT xmlXPathObjectPtr xphost = NULL;
+ CLEANUP_XMLXPATHFREEOBJECT xmlXPathObjectPtr xpusername = NULL;
xmlAttrPtr attr;
int readonly;
int t;
@@ -522,6 +523,18 @@ for_each_disk (guestfs_h *g,
protocol = (char *) xmlNodeListGetString (doc, attr->children, 1);
debug(g, _("disk[%zu]: protocol: %s"), i, protocol);
+ xpusername = xmlXPathEvalExpression (BAD_CAST "./auth/@username",
+ xpathCtx);
+ if (xpusername != NULL &&
+ xpusername->nodesetval != NULL &&
+ xpusername->nodesetval->nodeNr != 0) {
+ assert (xpusername->nodesetval->nodeTab[0]);
+ assert (xpusername->nodesetval->nodeTab[0]->type ==
XML_ATTRIBUTE_NODE);
+ attr = (xmlAttrPtr) xpusername->nodesetval->nodeTab[0];
+ username = (char *) xmlNodeListGetString (doc, attr->children, 1);
+ debug(g, _("disk[%zu]: username: %s"), i, username);
+ }
+
xphost = xmlXPathEvalExpression (BAD_CAST "./source/host",
xpathCtx);
if (xphost == NULL ||
@@ -552,7 +565,7 @@ for_each_disk (guestfs_h *g,
server[xphost->nodesetval->nodeNr] = NULL;
/*
- * TODO: usernames, secrets: ./auth/secret/@type,
+ * TODO: secrets: ./auth/secret/@type,
* ./auth/secret/@usage || ./auth/secret/@uuid
*/
} else
--
1.7.9.5