]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virsh-interface: Add a static helper virshInterfaceStringHelper
authorLin Ma <lma@suse.com>
Tue, 10 Nov 2020 09:50:55 +0000 (17:50 +0800)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 10 Nov 2020 17:34:07 +0000 (18:34 +0100)
It will be helpful to get the desired string of interface name/mac in a
consistent way.

Signed-off-by: Lin Ma <lma@suse.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
tools/virsh-completer-interface.c

index 8028db8746f35e51142ab5aabe84ccd26de38b8f..1aea7e03c5329257b62facd76aa557eec0fa0d50 100644 (file)
 #include "virsh.h"
 #include "virstring.h"
 
-char **
-virshInterfaceNameCompleter(vshControl *ctl,
-                            const vshCmd *cmd G_GNUC_UNUSED,
-                            unsigned int flags)
+typedef const char *
+(*virInterfaceStringCallback)(virInterfacePtr iface);
+
+static char **
+virshInterfaceStringHelper(vshControl *ctl,
+                           const vshCmd *cmd G_GNUC_UNUSED,
+                           unsigned int flags,
+                           virInterfaceStringCallback cb)
 {
     virshControlPtr priv = ctl->privData;
     virInterfacePtr *ifaces = NULL;
     int nifaces = 0;
     size_t i = 0;
-    char **ret = NULL;
     VIR_AUTOSTRINGLIST tmp = NULL;
 
     virCheckFlags(VIR_CONNECT_LIST_INTERFACES_ACTIVE |
@@ -50,15 +53,23 @@ virshInterfaceNameCompleter(vshControl *ctl,
     tmp = g_new0(char *, nifaces + 1);
 
     for (i = 0; i < nifaces; i++) {
-        const char *name = virInterfaceGetName(ifaces[i]);
+        const char *name = (cb)(ifaces[i]);
 
         tmp[i] = g_strdup(name);
     }
 
-    ret = g_steal_pointer(&tmp);
-
     for (i = 0; i < nifaces; i++)
         virInterfaceFree(ifaces[i]);
     g_free(ifaces);
-    return ret;
+
+    return g_steal_pointer(&tmp);
+}
+
+
+char **
+virshInterfaceNameCompleter(vshControl *ctl,
+                            const vshCmd *cmd,
+                            unsigned int flags)
+{
+    return virshInterfaceStringHelper(ctl, cmd, flags, virInterfaceGetName);
 }