]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virsh: split out virsh-interface.c
authorEric Blake <eblake@redhat.com>
Mon, 20 Aug 2012 20:30:53 +0000 (14:30 -0600)
committerEric Blake <eblake@redhat.com>
Tue, 21 Aug 2012 05:59:06 +0000 (23:59 -0600)
Another relatively easy split, since helper functions were fixed
in the previous patch.

* tools/virsh-interface.h: New file.
* tools/Makefile.am (virsh_SOURCES): Build it.
* tools/virsh.c: Use new header.
* tools/virsh-interface.c: Likewise.
(vshCommandOptInterfaceBy): Check flags.

tools/Makefile.am
tools/virsh-interface.c
tools/virsh-interface.h [new file with mode: 0644]
tools/virsh.c

index a3e5ff4d198a9259e9ce0949b095619ae8103bf5..4d46a98fb66446742ed52511ac370201f4664a4d 100644 (file)
@@ -109,8 +109,8 @@ virsh_SOURCES =                                                     \
                virsh-domain.c virsh-domain.h                   \
                virsh-domain-monitor.c virsh-domain-monitor.h   \
                virsh-host.c virsh-host.h                       \
+               virsh-interface.c virsh-interface.h             \
                $(NULL)
-#              virsh-interface.c virsh-interface.h             \
 #              virsh-network.c virsh-network.h                 \
 #              virsh-nodedev.c virsh-nodedev.h                 \
 #              virsh-nwfilter.c virsh-nwfilter.h               \
index e43aa91ceb8cf60dd4d4e0dc0f236c7ff9748548..da02168d8e6cd096491a4046600f42de2565f6a3 100644 (file)
  *
  */
 
-/* default is lookup by Name and MAC */
-#define vshCommandOptInterface(_ctl, _cmd, _name)                    \
-    vshCommandOptInterfaceBy(_ctl, _cmd, NULL, _name,                \
-                             VSH_BYMAC|VSH_BYNAME)
+#include <config.h>
+#include "virsh-interface.h"
 
-static virInterfacePtr
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xmlsave.h>
+
+#include "internal.h"
+#include "buf.h"
+#include "memory.h"
+#include "util.h"
+#include "xml.h"
+
+virInterfacePtr
 vshCommandOptInterfaceBy(vshControl *ctl, const vshCmd *cmd,
                          const char *optname,
-                         const char **name, int flag)
+                         const char **name, unsigned int flags)
 {
     virInterfacePtr iface = NULL;
     const char *n = NULL;
+    virCheckFlags(VSH_BYNAME | VSH_BYMAC, NULL);
 
     if (!optname)
        optname = "interface";
@@ -51,13 +61,13 @@ vshCommandOptInterfaceBy(vshControl *ctl, const vshCmd *cmd,
         *name = n;
 
     /* try it by NAME */
-    if (flag & VSH_BYNAME) {
+    if (flags & VSH_BYNAME) {
         vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as interface NAME\n",
                  cmd->def->name, optname);
         iface = virInterfaceLookupByName(ctl->conn, n);
     }
     /* try it by MAC */
-    if (iface == NULL && (flag & VSH_BYMAC)) {
+    if (!iface && (flags & VSH_BYMAC)) {
         vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as interface MAC\n",
                  cmd->def->name, optname);
         iface = virInterfaceLookupByMACString(ctl->conn, n);
@@ -999,7 +1009,7 @@ cmdInterfaceUnbridge(vshControl *ctl, const vshCmd *cmd)
     return ret;
 }
 
-static const vshCmdDef ifaceCmds[] = {
+const vshCmdDef ifaceCmds[] = {
     {"iface-begin", cmdInterfaceBegin, opts_interface_begin,
      info_interface_begin, 0},
     {"iface-bridge", cmdInterfaceBridge, opts_interface_bridge,
diff --git a/tools/virsh-interface.h b/tools/virsh-interface.h
new file mode 100644 (file)
index 0000000..2292cef
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * virsh-interface.c: Commands to manage host interface
+ *
+ * Copyright (C) 2005, 2007-2012 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library;  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ *  Daniel Veillard <veillard@redhat.com>
+ *  Karel Zak <kzak@redhat.com>
+ *  Daniel P. Berrange <berrange@redhat.com>
+ *
+ */
+
+#ifndef VIRSH_INTERFACE_H
+# define VIRSH_INTERFACE_H
+
+# include "virsh.h"
+
+virInterfacePtr vshCommandOptInterfaceBy(vshControl *ctl, const vshCmd *cmd,
+                                         const char *optname,
+                                         const char **name, unsigned int flags);
+
+/* default is lookup by Name and MAC */
+# define vshCommandOptInterface(_ctl, _cmd, _name)                    \
+    vshCommandOptInterfaceBy(_ctl, _cmd, NULL, _name,                \
+                             VSH_BYMAC|VSH_BYNAME)
+
+extern const vshCmdDef ifaceCmds[];
+
+#endif /* VIRSH_INTERFACE_H */
index fe79b7c98db0aac0896007739f74b407e909b496..d7fd408a9e9060867375f6a5999402a8f6155735 100644 (file)
@@ -77,6 +77,7 @@
 #include "virsh-domain.h"
 #include "virsh-domain-monitor.h"
 #include "virsh-host.h"
+#include "virsh-interface.h"
 
 static char *progname;
 
@@ -2815,7 +2816,6 @@ vshParseArgv(vshControl *ctl, int argc, char **argv)
     return true;
 }
 
-#include "virsh-interface.c"
 #include "virsh-network.c"
 #include "virsh-nodedev.c"
 #include "virsh-nwfilter.c"