]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuBuildHostNetProps: Don't use virJSONValueObjectAppendStringPrintf to format address
authorPeter Krempa <pkrempa@redhat.com>
Mon, 6 Mar 2023 08:40:24 +0000 (09:40 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 6 Mar 2023 12:36:05 +0000 (13:36 +0100)
Prefer virJSONValueObjectAdd which we already use internally combined
with local formatting of the string.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_command.c

index eb71a47091693873c1c536818a8dd98b4dad74ec..3dcee6c4e484a023284ba0762d3c8b63075ce478 100644 (file)
@@ -3804,6 +3804,15 @@ qemuBuildNicDevProps(virDomainDef *def,
 }
 
 
+static char *
+qemuBuildHostNetSocketAddr(virDomainNetDef *net)
+{
+    return g_strdup_printf("%s:%d",
+                           NULLSTR_EMPTY(net->data.socket.address),
+                           net->data.socket.port);
+}
+
+
 virJSONValue *
 qemuBuildHostNetProps(virDomainObj *vm,
                       virDomainNetDef *net)
@@ -3885,40 +3894,53 @@ qemuBuildHostNetProps(virDomainObj *vm,
     }
         break;
 
-    case VIR_DOMAIN_NET_TYPE_CLIENT:
-        if (virJSONValueObjectAdd(&netprops, "s:type", "socket", NULL) < 0 ||
-            virJSONValueObjectAppendStringPrintf(netprops, "connect", "%s:%d",
-                                                 net->data.socket.address,
-                                                 net->data.socket.port) < 0)
+    case VIR_DOMAIN_NET_TYPE_CLIENT: {
+        g_autofree char *addr = qemuBuildHostNetSocketAddr(net);
+
+        if (virJSONValueObjectAdd(&netprops,
+                                  "s:type", "socket",
+                                  "s:connect", addr,
+                                  NULL) < 0)
             return NULL;
         break;
+    }
 
-    case VIR_DOMAIN_NET_TYPE_SERVER:
-        if (virJSONValueObjectAdd(&netprops, "s:type", "socket", NULL) < 0 ||
-            virJSONValueObjectAppendStringPrintf(netprops, "listen", "%s:%d",
-                                                 NULLSTR_EMPTY(net->data.socket.address),
-                                                 net->data.socket.port) < 0)
+    case VIR_DOMAIN_NET_TYPE_SERVER: {
+        g_autofree char *addr = qemuBuildHostNetSocketAddr(net);
+
+        if (virJSONValueObjectAdd(&netprops,
+                                  "s:type", "socket",
+                                  "s:listen", addr,
+                                  NULL) < 0)
             return NULL;
         break;
+    }
 
-    case VIR_DOMAIN_NET_TYPE_MCAST:
-        if (virJSONValueObjectAdd(&netprops, "s:type", "socket", NULL) < 0 ||
-            virJSONValueObjectAppendStringPrintf(netprops, "mcast", "%s:%d",
-                                                 net->data.socket.address,
-                                                 net->data.socket.port) < 0)
+    case VIR_DOMAIN_NET_TYPE_MCAST: {
+        g_autofree char *addr = qemuBuildHostNetSocketAddr(net);
+
+        if (virJSONValueObjectAdd(&netprops,
+                                  "s:type", "socket",
+                                  "s:mcast", addr,
+                                  NULL) < 0)
             return NULL;
         break;
+    }
 
-    case VIR_DOMAIN_NET_TYPE_UDP:
-        if (virJSONValueObjectAdd(&netprops, "s:type", "socket", NULL) < 0 ||
-            virJSONValueObjectAppendStringPrintf(netprops, "udp", "%s:%d",
-                                                 net->data.socket.address,
-                                                 net->data.socket.port) < 0 ||
-            virJSONValueObjectAppendStringPrintf(netprops, "localaddr", "%s:%d",
-                                                 net->data.socket.localaddr,
-                                                 net->data.socket.localport) < 0)
+    case VIR_DOMAIN_NET_TYPE_UDP: {
+        g_autofree char *addr = qemuBuildHostNetSocketAddr(net);
+        g_autofree char *localaddr = g_strdup_printf("%s:%d",
+                                                     net->data.socket.localaddr,
+                                                     net->data.socket.localport);
+
+        if (virJSONValueObjectAdd(&netprops,
+                                  "s:type", "socket",
+                                  "s:udp", addr,
+                                  "s:localaddr", localaddr,
+                                  NULL) < 0)
             return NULL;
         break;
+    }
 
     case VIR_DOMAIN_NET_TYPE_USER:
         if (net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) {