]> xenbits.xensource.com Git - libvirt.git/commitdiff
Move virNetDevGetIndex & virNetDevGetVLanID to virnetdev.c
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 3 Nov 2011 09:27:45 +0000 (09:27 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Fri, 18 Nov 2011 16:10:02 +0000 (16:10 +0000)
Move virNetDevGetIndex & virNetDevGetVLanID to virnetdev.c to
suit their functional purpose

* util/interface.c, util/interface.h: Remove virNetDevGetIndex &
  virNetDevGetVLanID
* util/virnetdev.c, util/virnetdev.h: Add virNetDevGetIndex &
  virNetDevGetVLanID

src/nwfilter/nwfilter_learnipaddr.c
src/util/interface.c
src/util/interface.h
src/util/virnetdev.c
src/util/virnetdev.h

index 9a51fc278a4ef5c3f78f8861f0860199c2be2941..319f317665308b5e8f00d151d1268bf995404cbd 100644 (file)
@@ -46,6 +46,7 @@
 #include "logging.h"
 #include "datatypes.h"
 #include "interface.h"
+#include "virnetdev.h"
 #include "virterror_internal.h"
 #include "threads.h"
 #include "conf/nwfilter_params.h"
index af1def23cd676a4b9fbeba57ec29ef9daaa2baaf..9762145f38692b12ff6369b9cb8fad4a65f980f2 100644 (file)
@@ -141,117 +141,6 @@ ifaceCheck(bool reportError ATTRIBUTE_UNUSED,
 #endif /* __linux__ */
 
 
-/**
- * virNetDevGetIndex
- * @ifname : Name of the interface whose index is to be found
- * @ifindex: Pointer to int where the index will be written into
- *
- * Get the index of an interface given its name.
- *
- * Returns 0 on success, -1 on failure
- */
-#ifdef __linux__
-int
-virNetDevGetIndex(const char *ifname, int *ifindex)
-{
-    int ret = -1;
-    struct ifreq ifreq;
-    int fd = socket(PF_PACKET, SOCK_DGRAM, 0);
-
-    if (fd < 0) {
-        virReportSystemError(errno, "%s",
-                             _("Unable to open control socket"));
-        return -1;
-    }
-
-    memset(&ifreq, 0, sizeof(ifreq));
-
-    if (virStrncpy(ifreq.ifr_name, ifname, strlen(ifname),
-                   sizeof(ifreq.ifr_name)) == NULL) {
-        virReportSystemError(ERANGE,
-                             _("invalid interface name %s"),
-                             ifname);
-        goto cleanup;
-    }
-
-    if (ioctl(fd, SIOCGIFINDEX, &ifreq) < 0) {
-        virReportSystemError(errno,
-                             _("Unable to get index for interface %s"), ifname);
-        goto cleanup;
-    }
-
-    *ifindex = ifreq.ifr_ifindex;
-    ret = 0;
-
-cleanup:
-    VIR_FORCE_CLOSE(fd);
-    return ret;
-}
-
-#else
-
-int
-virNetDevGetIndex(const char *ifname ATTRIBUTE_UNUSED,
-                  int *ifindex ATTRIBUTE_UNUSED)
-{
-    virReportSystemError(ENOSYS, "%s",
-                         _("Unable to get interface index on this platform"));
-    return -1;
-}
-
-#endif /* __linux__ */
-
-#ifdef __linux__
-int
-virNetDevGetVLanID(const char *ifname, int *vlanid)
-{
-    struct vlan_ioctl_args vlanargs = {
-      .cmd = GET_VLAN_VID_CMD,
-    };
-    int ret = -1;
-    int fd = socket(PF_PACKET, SOCK_DGRAM, 0);
-
-    if (fd < 0) {
-        virReportSystemError(errno, "%s",
-                             _("Unable to open control socket"));
-        return -1;
-    }
-
-    if (virStrcpyStatic(vlanargs.device1, ifname) == NULL) {
-        virReportSystemError(ERANGE,
-                             _("invalid interface name %s"),
-                             ifname);
-        goto cleanup;
-    }
-
-    if (ioctl(fd, SIOCGIFVLAN, &vlanargs) != 0) {
-        virReportSystemError(errno,
-                             _("Unable to get VLAN for interface %s"), ifname);
-        goto cleanup;
-    }
-
-    *vlanid = vlanargs.u.VID;
-    ret = 0;
-
- cleanup:
-    VIR_FORCE_CLOSE(fd);
-
-    return ret;
-}
-
-#else
-
-int
-virNetDevGetVLanID(const char *ifname ATTRIBUTE_UNUSED,
-                   int *vlanid ATTRIBUTE_UNUSED)
-{
-    virReportSystemError(ENOSYS, "%s",
-                         _("Unable to get VLAN on this platform"));
-    return -1;
-}
-#endif /* __linux__ */
-
-
 /**
  * ifaceGetIPAddress:
  * @ifname: name of the interface whose IP address we want
index 51d5c28e07c044dd143c169b2bf82bc021cfb357..aa70192012cfb12d63ae1a68281facc44996b620 100644 (file)
@@ -33,12 +33,6 @@ struct nlattr;
 int ifaceCheck(bool reportError, const char *ifname,
                const unsigned char *macaddr, int ifindex);
 
-int virNetDevGetIndex(const char *ifname, int *ifindex)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
-
-int virNetDevGetVLanID(const char *ifname, int *vlanid)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
-
 int ifaceGetIPAddress(const char *ifname, virSocketAddrPtr addr);
 
 int ifaceMacvtapLinkDump(bool nltarget_kernel, const char *ifname, int ifindex,
index 230dbeb3247ae801037a6f0c8714b5c264963fe3..c2a0f57fe918f5fd7cb2f8f922165b19a198bff9 100644 (file)
 #endif
 #include <fcntl.h>
 
+#ifdef __linux__
+# include <linux/sockios.h>
+# include <linux/if_vlan.h>
+#endif
+
 #define VIR_FROM_THIS VIR_FROM_NONE
 #define virNetDevError(code, ...)                                      \
     virReportErrorHelper(VIR_FROM_THIS, code, __FILE__,                \
@@ -611,6 +616,110 @@ int virNetDevIsOnline(const char *ifname,
 #endif
 
 
+/**
+ * virNetDevGetIndex:
+ * @ifname : Name of the interface whose index is to be found
+ * @ifindex: Pointer to int where the index will be written into
+ *
+ * Get the index of an interface given its name.
+ *
+ * Returns 0 on success, -1 on failure
+ */
+#ifdef __linux__
+int virNetDevGetIndex(const char *ifname, int *ifindex)
+{
+    int ret = -1;
+    struct ifreq ifreq;
+    int fd = socket(PF_PACKET, SOCK_DGRAM, 0);
+
+    if (fd < 0) {
+        virReportSystemError(errno, "%s",
+                             _("Unable to open control socket"));
+        return -1;
+    }
+
+    memset(&ifreq, 0, sizeof(ifreq));
+
+    if (virStrncpy(ifreq.ifr_name, ifname, strlen(ifname),
+                   sizeof(ifreq.ifr_name)) == NULL) {
+        virReportSystemError(ERANGE,
+                             _("invalid interface name %s"),
+                             ifname);
+        goto cleanup;
+    }
+
+    if (ioctl(fd, SIOCGIFINDEX, &ifreq) < 0) {
+        virReportSystemError(errno,
+                             _("Unable to get index for interface %s"), ifname);
+        goto cleanup;
+    }
+
+    *ifindex = ifreq.ifr_ifindex;
+    ret = 0;
+
+cleanup:
+    VIR_FORCE_CLOSE(fd);
+    return ret;
+}
+#else /* ! __linux__ */
+int virNetDevGetIndex(const char *ifname ATTRIBUTE_UNUSED,
+                      int *ifindex ATTRIBUTE_UNUSED)
+{
+    virReportSystemError(ENOSYS, "%s",
+                         _("Unable to get interface index on this platform"));
+    return -1;
+}
+#endif /* ! __linux__ */
+
+
+#ifdef __linux__
+int virNetDevGetVLanID(const char *ifname, int *vlanid)
+{
+    struct vlan_ioctl_args vlanargs = {
+      .cmd = GET_VLAN_VID_CMD,
+    };
+    int ret = -1;
+    int fd = socket(PF_PACKET, SOCK_DGRAM, 0);
+
+    if (fd < 0) {
+        virReportSystemError(errno, "%s",
+                             _("Unable to open control socket"));
+        return -1;
+    }
+
+    if (virStrcpyStatic(vlanargs.device1, ifname) == NULL) {
+        virReportSystemError(ERANGE,
+                             _("invalid interface name %s"),
+                             ifname);
+        goto cleanup;
+    }
+
+    if (ioctl(fd, SIOCGIFVLAN, &vlanargs) != 0) {
+        virReportSystemError(errno,
+                             _("Unable to get VLAN for interface %s"), ifname);
+        goto cleanup;
+    }
+
+    *vlanid = vlanargs.u.VID;
+    ret = 0;
+
+ cleanup:
+    VIR_FORCE_CLOSE(fd);
+
+    return ret;
+}
+#else /* ! __linux__ */
+int virNetDevGetVLanID(const char *ifname ATTRIBUTE_UNUSED,
+                       int *vlanid ATTRIBUTE_UNUSED)
+{
+    virReportSystemError(ENOSYS, "%s",
+                         _("Unable to get VLAN on this platform"));
+    return -1;
+}
+#endif /* ! __linux__ */
+
+
+
 /**
  * virNetDevSetIPv4Address:
  * @ifname: the interface name
index 84966d797d56c1852f51a720f1a3b87e9e408d8b..8c1d7c6f0a3a5faf886632ca47ab647c551df2d8 100644 (file)
@@ -76,4 +76,11 @@ int virNetDevSetNamespace(const char *ifname, int pidInNs)
 int virNetDevSetName(const char *ifname, const char *newifname)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
 
+int virNetDevGetIndex(const char *ifname, int *ifindex)
+    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
+
+int virNetDevGetVLanID(const char *ifname, int *vlanid)
+    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
+
+
 #endif /* __VIR_NETDEV_H__ */