]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
drivers: Move driver_wired_get_ifstatus() to a common file
authorSabrina Dubroca <sd@queasysnail.net>
Sun, 27 Nov 2016 19:08:49 +0000 (20:08 +0100)
committerJouni Malinen <j@w1.fi>
Wed, 30 Nov 2016 17:33:43 +0000 (19:33 +0200)
This continues refactoring of the common parts of wired drivers code
into a shared file, so that they can be reused by other drivers.

Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
src/drivers/driver_macsec_qca.c
src/drivers/driver_wired.c
src/drivers/driver_wired_common.c
src/drivers/driver_wired_common.h

index 31cb0dc8d80a2797092d670c9668f842be799763..786e2e828b7900c7d4a498cff1d70385b1bf048b 100644 (file)
@@ -99,35 +99,6 @@ static int macsec_qca_get_capa(void *priv, struct wpa_driver_capa *capa)
 }
 
 
-#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
-static int macsec_qca_get_ifstatus(const char *ifname, int *status)
-{
-       struct ifmediareq ifmr;
-       int s;
-
-       s = socket(PF_INET, SOCK_DGRAM, 0);
-       if (s < 0) {
-               wpa_print(MSG_ERROR, "socket: %s", strerror(errno));
-               return -1;
-       }
-
-       os_memset(&ifmr, 0, sizeof(ifmr));
-       os_strlcpy(ifmr.ifm_name, ifname, IFNAMSIZ);
-       if (ioctl(s, SIOCGIFMEDIA, (caddr_t) &ifmr) < 0) {
-               wpa_printf(MSG_ERROR, "ioctl[SIOCGIFMEDIA]: %s",
-                          strerror(errno));
-               close(s);
-               return -1;
-       }
-       close(s);
-       *status = (ifmr.ifm_status & (IFM_ACTIVE | IFM_AVALID)) ==
-               (IFM_ACTIVE | IFM_AVALID);
-
-       return 0;
-}
-#endif /* defined(__FreeBSD__) || defined(__DragonFly__) || defined(FreeBSD_kernel__) */
-
-
 static void __macsec_drv_init(struct macsec_qca_data *drv)
 {
        int ret = 0;
@@ -243,7 +214,7 @@ static void * macsec_qca_init(void *ctx, const char *ifname)
                int status;
                wpa_printf(MSG_DEBUG, "%s: waiting for link to become active",
                           __func__);
-               while (macsec_qca_get_ifstatus(ifname, &status) == 0 &&
+               while (driver_wired_get_ifstatus(ifname, &status) == 0 &&
                       status == 0)
                        sleep(1);
        }
index 953fa3d674814c28a32660475866d34796115aa1..db836834482a406cbd508bf3758112ef4786ef40 100644 (file)
@@ -390,35 +390,6 @@ static int wpa_driver_wired_get_capa(void *priv, struct wpa_driver_capa *capa)
 }
 
 
-#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
-static int wpa_driver_wired_get_ifstatus(const char *ifname, int *status)
-{
-       struct ifmediareq ifmr;
-       int s;
-
-       s = socket(PF_INET, SOCK_DGRAM, 0);
-       if (s < 0) {
-               wpa_printf(MSG_ERROR, "socket: %s", strerror(errno));
-               return -1;
-       }
-
-       os_memset(&ifmr, 0, sizeof(ifmr));
-       os_strlcpy(ifmr.ifm_name, ifname, IFNAMSIZ);
-       if (ioctl(s, SIOCGIFMEDIA, (caddr_t) &ifmr) < 0) {
-               wpa_printf(MSG_ERROR, "ioctl[SIOCGIFMEDIA]: %s",
-                          strerror(errno));
-               close(s);
-               return -1;
-       }
-       close(s);
-       *status = (ifmr.ifm_status & (IFM_ACTIVE | IFM_AVALID)) ==
-               (IFM_ACTIVE | IFM_AVALID);
-
-       return 0;
-}
-#endif /* defined(__FreeBSD__) || defined(__DragonFly__) || defined(FreeBSD_kernel__) */
-
-
 static void * wpa_driver_wired_init(void *ctx, const char *ifname)
 {
        struct wpa_driver_wired_data *drv;
@@ -477,7 +448,7 @@ static void * wpa_driver_wired_init(void *ctx, const char *ifname)
                int status;
                wpa_printf(MSG_DEBUG, "%s: waiting for link to become active",
                           __func__);
-               while (wpa_driver_wired_get_ifstatus(ifname, &status) == 0 &&
+               while (driver_wired_get_ifstatus(ifname, &status) == 0 &&
                       status == 0)
                        sleep(1);
        }
index 52f22dedfd48dd2bb1733b6f120186eaae164a85..e55e2c7ed625433e7cb0275a8a205fc8bd04faa7 100644 (file)
@@ -162,3 +162,32 @@ int wired_multicast_membership(int sock, int ifindex, const u8 *addr, int add)
        return -1;
 #endif /* __linux__ */
 }
+
+
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
+int driver_wired_get_ifstatus(const char *ifname, int *status)
+{
+       struct ifmediareq ifmr;
+       int s;
+
+       s = socket(PF_INET, SOCK_DGRAM, 0);
+       if (s < 0) {
+               wpa_printf(MSG_ERROR, "socket: %s", strerror(errno));
+               return -1;
+       }
+
+       os_memset(&ifmr, 0, sizeof(ifmr));
+       os_strlcpy(ifmr.ifm_name, ifname, IFNAMSIZ);
+       if (ioctl(s, SIOCGIFMEDIA, (caddr_t) &ifmr) < 0) {
+               wpa_printf(MSG_ERROR, "ioctl[SIOCGIFMEDIA]: %s",
+                          strerror(errno));
+               close(s);
+               return -1;
+       }
+       close(s);
+       *status = (ifmr.ifm_status & (IFM_ACTIVE | IFM_AVALID)) ==
+               (IFM_ACTIVE | IFM_AVALID);
+
+       return 0;
+}
+#endif /* defined(__FreeBSD__) || defined(__DragonFly__) || defined(FreeBSD_kernel__) */
index e2d8bbe13c7583e1f3e9715934772bc273fdef67..c8e347abee67e2facaf777eeb64dc3d5b897b44a 100644 (file)
@@ -26,5 +26,6 @@ int driver_wired_get_ifflags(const char *ifname, int *flags);
 int driver_wired_set_ifflags(const char *ifname, int flags);
 int driver_wired_multi(const char *ifname, const u8 *addr, int add);
 int wired_multicast_membership(int sock, int ifindex, const u8 *addr, int add);
+int driver_wired_get_ifstatus(const char *ifname, int *status);
 
 #endif /* DRIVER_WIRED_COMMON_H */