[PATCH v3 5/7] storage_conf: Move username processing into common function

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

 



Move the auth->username processing into virStoragePoolDefParseAuth
save the resulting username into chap/cephx specific data
---
 src/conf/storage_conf.c | 30 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 16 deletions(-)

diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index 404545a..c89a5b4 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -464,13 +464,6 @@ virStoragePoolDefParseAuthChap(xmlXPathContextPtr ctxt,
     char *uuid = NULL;
     int ret = -1;
 
-    auth->username = virXPathString("string(./auth/@username)", ctxt);
-    if (auth->username == NULL) {
-        virReportError(VIR_ERR_XML_ERROR, "%s",
-                       _("missing auth username attribute"));
-        return -1;
-    }
-
     uuid = virXPathString("string(./auth/secret/@uuid)", ctxt);
     auth->secret.usage = virXPathString("string(./auth/secret/@usage)", ctxt);
     if (uuid == NULL && auth->secret.usage == NULL) {
@@ -508,13 +501,6 @@ virStoragePoolDefParseAuthCephx(xmlXPathContextPtr ctxt,
     char *uuid = NULL;
     int ret = -1;
 
-    auth->username = virXPathString("string(./auth/@username)", ctxt);
-    if (auth->username == NULL) {
-        virReportError(VIR_ERR_XML_ERROR, "%s",
-                       _("missing auth username attribute"));
-        return -1;
-    }
-
     uuid = virXPathString("string(./auth/secret/@uuid)", ctxt);
     auth->secret.usage = virXPathString("string(./auth/secret/@usage)", ctxt);
     if (uuid == NULL && auth->secret.usage == NULL) {
@@ -551,6 +537,7 @@ virStoragePoolDefParseAuth(xmlXPathContextPtr ctxt,
 {
     int ret = -1;
     char *authType = NULL;
+    char *username = NULL;
 
     authType = virXPathString("string(./auth/@type)", ctxt);
     if (authType == NULL) {
@@ -567,12 +554,22 @@ virStoragePoolDefParseAuth(xmlXPathContextPtr ctxt,
         goto cleanup;
     }
 
+    username = virXPathString("string(./auth/@username)", ctxt);
+    if (username == NULL) {
+        virReportError(VIR_ERR_XML_ERROR, "%s",
+                       _("missing auth username attribute"));
+        goto cleanup;
+    }
+
     if (source->authType == VIR_STORAGE_POOL_AUTH_CHAP) {
+        source->auth.chap.username = username;
+        username = NULL;
         if (virStoragePoolDefParseAuthChap(ctxt, &source->auth.chap) < 0)
             goto cleanup;
     }
-
-    if (source->authType == VIR_STORAGE_POOL_AUTH_CEPHX) {
+    else if (source->authType == VIR_STORAGE_POOL_AUTH_CEPHX) {
+        source->auth.cephx.username = username;
+        username = NULL;
         if (virStoragePoolDefParseAuthCephx(ctxt, &source->auth.cephx) < 0)
             goto cleanup;
     }
@@ -581,6 +578,7 @@ virStoragePoolDefParseAuth(xmlXPathContextPtr ctxt,
 
 cleanup:
     VIR_FREE(authType);
+    VIR_FREE(username);
     return ret;
 }
 
-- 
1.8.1.4

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]