[libvirt PATCHv2 13/16] qemuAgentGetInterfaceAddresses: turn ifname into char*

Ján Tomko jtomko at redhat.com
Wed Oct 7 12:35:34 UTC 2020


We only care about the first part of the 'ifname' string,
splitting it is overkill.

Instead, just replace the ':' with a '\0' in a copy of the string.
This reduces the count of the varaibles containing some form
of the interface name to two.

Signed-off-by: Ján Tomko <jtomko at redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma at redhat.com>
---
 src/qemu/qemu_agent.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
index 06e143b0b9..5cb6257bfc 100644
--- a/src/qemu/qemu_agent.c
+++ b/src/qemu/qemu_agent.c
@@ -2129,9 +2129,9 @@ qemuAgentGetInterfaceAddresses(virDomainInterfacePtr **ifaces_ret,
                                virJSONValuePtr tmp_iface)
 {
     virJSONValuePtr ip_addr_arr = NULL;
-    const char *hwaddr, *ifname_s, *name = NULL;
+    const char *hwaddr, *name = NULL;
     virDomainInterfacePtr iface = NULL;
-    g_auto(GStrv) ifname = NULL;
+    g_autofree char *ifname = NULL;
     size_t addrs_count = 0;
     size_t j;
 
@@ -2144,10 +2144,9 @@ qemuAgentGetInterfaceAddresses(virDomainInterfacePtr **ifaces_ret,
     }
 
     /* Handle interface alias (<ifname>:<alias>) */
-    ifname = virStringSplit(name, ":", 2);
-    ifname_s = ifname[0];
+    ifname = g_strdelimit(g_strdup(name), ":", '\0');
 
-    iface = virHashLookup(ifaces_store, ifname_s);
+    iface = virHashLookup(ifaces_store, ifname);
 
     /* If the hash table doesn't contain this iface, add it */
     if (!iface) {
@@ -2157,11 +2156,11 @@ qemuAgentGetInterfaceAddresses(virDomainInterfacePtr **ifaces_ret,
         iface = g_new0(virDomainInterface, 1);
         (*ifaces_ret)[*ifaces_count - 1] = iface;
 
-        if (virHashAddEntry(ifaces_store, ifname_s, iface) < 0)
+        if (virHashAddEntry(ifaces_store, ifname, iface) < 0)
             return -1;
 
         iface->naddrs = 0;
-        iface->name = g_strdup(ifname_s);
+        iface->name = g_strdup(ifname);
 
         hwaddr = virJSONValueObjectGetString(tmp_iface, "hardware-address");
         iface->hwaddr = g_strdup(hwaddr);
-- 
2.26.2




More information about the libvir-list mailing list