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 \
*
*/
-/* 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";
*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);
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,
--- /dev/null
+/*
+ * 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 */
#include "virsh-domain.h"
#include "virsh-domain-monitor.h"
#include "virsh-host.h"
+#include "virsh-interface.h"
static char *progname;
return true;
}
-#include "virsh-interface.c"
#include "virsh-network.c"
#include "virsh-nodedev.c"
#include "virsh-nwfilter.c"