]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virStorageNetHostDef: Convert 'transport' field to proper enum type
authorMichal Privoznik <mprivozn@redhat.com>
Wed, 13 Sep 2023 16:21:21 +0000 (18:21 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 15 Sep 2023 08:35:20 +0000 (10:35 +0200)
Convert the field and adjust the XML parsers to use
virXMLPropEnumDefault().

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/domain_conf.c
src/conf/storage_source_conf.h
src/qemu/qemu_backup.c
src/qemu/qemu_block.c
src/qemu/qemu_monitor_json.c
src/storage_file/storage_file_backend_gluster.c
src/storage_file/storage_source_backingstore.c

index a743a0628c60bee0981759620b124c02d535e9dc..5f4146b4e36dcbfbc0cec06d4853a359c0013384 100644 (file)
@@ -5834,17 +5834,13 @@ virDomainStorageNetworkParseHost(xmlNodePtr hostnode,
     g_autofree char *port = NULL;
 
     memset(host, 0, sizeof(*host));
-    host->transport = VIR_STORAGE_NET_HOST_TRANS_TCP;
 
-    /* transport can be tcp (default), unix or rdma.  */
-    if ((transport = virXMLPropString(hostnode, "transport"))) {
-        host->transport = virStorageNetHostTransportTypeFromString(transport);
-        if (host->transport < 0) {
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                           _("unknown protocol transport type '%1$s'"),
-                           transport);
-            goto cleanup;
-        }
+    if (virXMLPropEnumDefault(hostnode, "transport",
+                              virStorageNetHostTransportTypeFromString,
+                              VIR_XML_PROP_NONE,
+                              &host->transport,
+                              VIR_STORAGE_NET_HOST_TRANS_TCP) < 0) {
+        goto cleanup;
     }
 
     host->socket = virXMLPropString(hostnode, "socket");
index f99579bce2c7216d83cf4600a96170cbf873ee06..9791fb25ee38f4859db362e7194a6ef5a6d0a526 100644 (file)
@@ -151,7 +151,7 @@ typedef struct _virStorageNetHostDef virStorageNetHostDef;
 struct _virStorageNetHostDef {
     char *name;
     unsigned int port;
-    int transport; /* virStorageNetHostTransport */
+    virStorageNetHostTransport transport;
     char *socket;  /* path to unix socket */
 };
 
index a94869522dce22684341e717642746ae93008946..e4db967e2ca9cca93c64b8e1cbe4a125eff41bee 100644 (file)
@@ -68,7 +68,7 @@ qemuBackupPrepare(virDomainBackupDef *def)
             def->server->name = g_strdup("localhost");
         }
 
-        switch ((virStorageNetHostTransport) def->server->transport) {
+        switch (def->server->transport) {
         case VIR_STORAGE_NET_HOST_TRANS_TCP:
             /* TODO: Update qemu.conf to provide a port range,
              * probably starting at 10809, for obtaining automatic
index d31bbde0f47bcbbdc2f9ce3c9f2d446a8c9efa97..97f03002fdba9253292ffea1595c244d9802c136 100644 (file)
@@ -130,7 +130,7 @@ qemuBlockStorageSourceBuildJSONSocketAddress(virStorageNetHostDef *host)
     g_autoptr(virJSONValue) server = NULL;
     g_autofree char *port = NULL;
 
-    switch ((virStorageNetHostTransport) host->transport) {
+    switch (host->transport) {
     case VIR_STORAGE_NET_HOST_TRANS_TCP:
         port = g_strdup_printf("%u", host->port);
 
index 5b9edadcf7871b4113f809354fe2f67ac956206e..137cb4e293976efc49b8f9fe2b10d38f046103c4 100644 (file)
@@ -6176,7 +6176,7 @@ qemuMonitorJSONNBDServerStart(qemuMonitor *mon,
     g_autoptr(virJSONValue) addr = NULL;
     g_autofree char *port_str = NULL;
 
-    switch ((virStorageNetHostTransport)server->transport) {
+    switch (server->transport) {
     case VIR_STORAGE_NET_HOST_TRANS_TCP:
         port_str = g_strdup_printf("%u", server->port);
         addr = qemuMonitorJSONBuildInetSocketAddress(server->name, port_str);
index d018d5422e7f181324564ff7ea93a90926b2dd89..950f8e81fe8359ae2a143e12b92a8f861f5c5689 100644 (file)
@@ -63,7 +63,7 @@ virStorageFileBackendGlusterInitServer(virStorageFileBackendGlusterPriv *priv,
     const char *hoststr = NULL;
     int port = 0;
 
-    switch ((virStorageNetHostTransport) host->transport) {
+    switch (host->transport) {
     case VIR_STORAGE_NET_HOST_TRANS_RDMA:
     case VIR_STORAGE_NET_HOST_TRANS_TCP:
         hoststr = host->name;
index 00fcfe9fd76c6dbff0d4b2b98fb7fc7eb4a6e977..80681924eae5953e45a123d3c6ab13d74030cc10 100644 (file)
@@ -42,6 +42,7 @@ virStorageSourceParseBackingURI(virStorageSource *src,
 {
     g_autoptr(virURI) uri = NULL;
     const char *path = NULL;
+    int transport = 0;
     g_auto(GStrv) scheme = NULL;
 
     if (!(uri = virURIParse(uristr))) {
@@ -65,12 +66,14 @@ virStorageSourceParseBackingURI(virStorageSource *src,
         return -1;
     }
 
-    if (scheme[1] &&
-        (src->hosts->transport = virStorageNetHostTransportTypeFromString(scheme[1])) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("invalid protocol transport type '%1$s'"),
-                       scheme[1]);
-        return -1;
+    if (scheme[1]) {
+        if ((transport = virStorageNetHostTransportTypeFromString(scheme[1])) < 0) {
+            virReportError(VIR_ERR_INTERNAL_ERROR,
+                           _("invalid protocol transport type '%1$s'"),
+                           scheme[1]);
+            return -1;
+        }
+        src->hosts->transport = transport;
     }
 
     if (uri->query) {