diff --git a/libnm-core/nm-setting-wired.c b/libnm-core/nm-setting-wired.c index 2b0e31406..6dd9c2ede 100644 --- a/libnm-core/nm-setting-wired.c +++ b/libnm-core/nm-setting-wired.c @@ -622,9 +622,7 @@ verify (NMSetting *setting, GSList *all_settings, GError **error) for (mac_blacklist_iter = priv->mac_address_blacklist; mac_blacklist_iter; mac_blacklist_iter = mac_blacklist_iter->next) { - struct ether_addr addr; - - if (!ether_aton_r (mac_blacklist_iter->data, &addr)) { + if (!nm_utils_hwaddr_valid (mac_blacklist_iter->data, ETH_ALEN)) { g_set_error (error, NM_SETTING_WIRED_ERROR, NM_SETTING_WIRED_ERROR_INVALID_PROPERTY, diff --git a/libnm-core/nm-setting-wireless.c b/libnm-core/nm-setting-wireless.c index 7a4015e0a..b965d36f1 100644 --- a/libnm-core/nm-setting-wireless.c +++ b/libnm-core/nm-setting-wireless.c @@ -799,9 +799,7 @@ verify (NMSetting *setting, GSList *all_settings, GError **error) } for (iter = priv->mac_address_blacklist; iter; iter = iter->next) { - struct ether_addr addr; - - if (!ether_aton_r (iter->data, &addr)) { + if (!nm_utils_hwaddr_valid (iter->data, ETH_ALEN)) { g_set_error (error, NM_SETTING_WIRELESS_ERROR, NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY, @@ -813,9 +811,7 @@ verify (NMSetting *setting, GSList *all_settings, GError **error) } for (iter = priv->seen_bssids; iter; iter = iter->next) { - struct ether_addr addr; - - if (!ether_aton_r (iter->data, &addr)) { + if (!nm_utils_hwaddr_valid (iter->data, ETH_ALEN)) { g_set_error (error, NM_SETTING_WIRELESS_ERROR, NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY, diff --git a/libnm/nm-access-point.c b/libnm/nm-access-point.c index 19d92d99d..0e29bee29 100644 --- a/libnm/nm-access-point.c +++ b/libnm/nm-access-point.c @@ -240,7 +240,7 @@ nm_access_point_connection_valid (NMAccessPoint *ap, NMConnection *connection) const GByteArray *setting_ssid; const GByteArray *ap_ssid; const GByteArray *setting_bssid; - struct ether_addr *ap_bssid; + guint8 ap_bssid[ETH_ALEN]; const char *setting_mode; NM80211Mode ap_mode; const char *setting_band; @@ -271,12 +271,11 @@ nm_access_point_connection_valid (NMAccessPoint *ap, NMConnection *connection) setting_bssid = nm_setting_wireless_get_bssid (s_wifi); if (setting_bssid && ap_bssid_str) { g_assert (setting_bssid->len == ETH_ALEN); - ap_bssid = ether_aton (ap_bssid_str); - g_warn_if_fail (ap_bssid); - if (ap_bssid) { - if (memcmp (ap_bssid->ether_addr_octet, setting_bssid->data, ETH_ALEN) != 0) + if (nm_utils_hwaddr_aton (ap_bssid_str, ap_bssid, ETH_ALEN)) { + if (memcmp (ap_bssid, setting_bssid->data, ETH_ALEN) != 0) return FALSE; - } + } else + g_warn_if_reached (); } /* Mode */ diff --git a/libnm/nm-device-bt.c b/libnm/nm-device-bt.c index 5daa015fc..edda2e95a 100644 --- a/libnm/nm-device-bt.c +++ b/libnm/nm-device-bt.c @@ -27,6 +27,7 @@ #include #include +#include #include "nm-device-bt.h" #include "nm-device-private.h" @@ -148,7 +149,7 @@ connection_compatible (NMDevice *device, NMConnection *connection, GError **erro const char *ctype; const GByteArray *mac; const char *hw_str; - struct ether_addr *hw_mac; + guint8 hw_mac[ETH_ALEN]; NMBluetoothCapabilities dev_caps; NMBluetoothCapabilities bt_type; @@ -172,14 +173,13 @@ connection_compatible (NMDevice *device, NMConnection *connection, GError **erro /* Check BT address */ hw_str = nm_device_bt_get_hw_address (NM_DEVICE_BT (device)); if (hw_str) { - hw_mac = ether_aton (hw_str); - if (!hw_mac) { + if (!nm_utils_hwaddr_aton (hw_str, hw_mac, ETH_ALEN)) { g_set_error (error, NM_DEVICE_BT_ERROR, NM_DEVICE_BT_ERROR_INVALID_DEVICE_MAC, "Invalid device MAC address."); return FALSE; } mac = nm_setting_bluetooth_get_bdaddr (s_bt); - if (mac && hw_mac && memcmp (mac->data, hw_mac->ether_addr_octet, ETH_ALEN)) { + if (mac && memcmp (mac->data, hw_mac, ETH_ALEN)) { g_set_error (error, NM_DEVICE_BT_ERROR, NM_DEVICE_BT_ERROR_MAC_MISMATCH, "The MACs of the device and the connection didn't match."); return FALSE; diff --git a/libnm/nm-device-ethernet.c b/libnm/nm-device-ethernet.c index 899006235..d2e2d0e1c 100644 --- a/libnm/nm-device-ethernet.c +++ b/libnm/nm-device-ethernet.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "nm-device-ethernet.h" #include "nm-device-private.h" @@ -170,21 +171,20 @@ connection_compatible (NMDevice *device, NMConnection *connection, GError **erro if (s_wired) { const GByteArray *mac; const char *perm_str; - struct ether_addr *perm_mac; + guint8 perm_mac[ETH_ALEN]; /* FIXME: filter using s390 subchannels when they are exported over the bus */ /* Check MAC address */ perm_str = nm_device_ethernet_get_permanent_hw_address (NM_DEVICE_ETHERNET (device)); if (perm_str) { - perm_mac = ether_aton (perm_str); - if (!perm_mac) { + if (!nm_utils_hwaddr_aton (perm_str, perm_mac, ETH_ALEN)) { g_set_error (error, NM_DEVICE_ETHERNET_ERROR, NM_DEVICE_ETHERNET_ERROR_INVALID_DEVICE_MAC, "Invalid device MAC address."); return FALSE; } mac = nm_setting_wired_get_mac_address (s_wired); - if (mac && perm_mac && memcmp (mac->data, perm_mac->ether_addr_octet, ETH_ALEN)) { + if (mac && memcmp (mac->data, perm_mac, ETH_ALEN)) { g_set_error (error, NM_DEVICE_ETHERNET_ERROR, NM_DEVICE_ETHERNET_ERROR_MAC_MISMATCH, "The MACs of the device and the connection didn't match."); return FALSE; diff --git a/libnm/nm-device-wifi.c b/libnm/nm-device-wifi.c index 7abab9aa6..81c9a3279 100644 --- a/libnm/nm-device-wifi.c +++ b/libnm/nm-device-wifi.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "nm-device-wifi.h" #include "nm-device-private.h" @@ -420,7 +421,7 @@ connection_compatible (NMDevice *device, NMConnection *connection, GError **erro const char *ctype; const GByteArray *mac; const char *hw_str; - struct ether_addr *hw_mac; + guint8 hw_mac[ETH_ALEN]; NMDeviceWifiCapabilities wifi_caps; const char *key_mgmt; @@ -444,14 +445,13 @@ connection_compatible (NMDevice *device, NMConnection *connection, GError **erro /* Check MAC address */ hw_str = nm_device_wifi_get_permanent_hw_address (NM_DEVICE_WIFI (device)); if (hw_str) { - hw_mac = ether_aton (hw_str); - if (!hw_mac) { + if (!nm_utils_hwaddr_aton (hw_str, hw_mac, ETH_ALEN)) { g_set_error (error, NM_DEVICE_WIFI_ERROR, NM_DEVICE_WIFI_ERROR_INVALID_DEVICE_MAC, "Invalid device MAC address."); return FALSE; } mac = nm_setting_wireless_get_mac_address (s_wifi); - if (mac && hw_mac && memcmp (mac->data, hw_mac->ether_addr_octet, ETH_ALEN)) { + if (mac && memcmp (mac->data, hw_mac, ETH_ALEN)) { g_set_error (error, NM_DEVICE_WIFI_ERROR, NM_DEVICE_WIFI_ERROR_MAC_MISMATCH, "The MACs of the device and the connection didn't match."); return FALSE; diff --git a/libnm/nm-device-wimax.c b/libnm/nm-device-wimax.c index 1459365f7..eb5d87fd6 100644 --- a/libnm/nm-device-wimax.c +++ b/libnm/nm-device-wimax.c @@ -27,6 +27,7 @@ #include #include +#include #include "nm-device-wimax.h" #include "nm-object-private.h" @@ -324,7 +325,7 @@ connection_compatible (NMDevice *device, NMConnection *connection, GError **erro const char *ctype; const GByteArray *mac; const char *hw_str; - struct ether_addr *hw_mac; + guint8 hw_mac[ETH_ALEN]; s_con = nm_connection_get_setting_connection (connection); g_assert (s_con); @@ -346,14 +347,13 @@ connection_compatible (NMDevice *device, NMConnection *connection, GError **erro /* Check MAC address */ hw_str = nm_device_wimax_get_hw_address (NM_DEVICE_WIMAX (device)); if (hw_str) { - hw_mac = ether_aton (hw_str); - if (!hw_mac) { + if (!nm_utils_hwaddr_aton (hw_str, hw_mac, ETH_ALEN)) { g_set_error (error, NM_DEVICE_WIMAX_ERROR, NM_DEVICE_WIMAX_ERROR_INVALID_DEVICE_MAC, "Invalid device MAC address."); return FALSE; } mac = nm_setting_wimax_get_mac_address (s_wimax); - if (mac && hw_mac && memcmp (mac->data, hw_mac->ether_addr_octet, ETH_ALEN)) { + if (mac && memcmp (mac->data, hw_mac, ETH_ALEN)) { g_set_error (error, NM_DEVICE_WIMAX_ERROR, NM_DEVICE_WIMAX_ERROR_MAC_MISMATCH, "The MACs of the device and the connection didn't match."); return FALSE; diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c index a8e360932..4939b5ec0 100644 --- a/src/NetworkManagerUtils.c +++ b/src/NetworkManagerUtils.c @@ -51,7 +51,7 @@ * */ gboolean -nm_ethernet_address_is_valid (const struct ether_addr *test_addr) +nm_ethernet_address_is_valid (const guint8 *test_addr) { guint8 invalid_addr1[ETH_ALEN] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; guint8 invalid_addr2[ETH_ALEN] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; @@ -61,19 +61,19 @@ nm_ethernet_address_is_valid (const struct ether_addr *test_addr) g_return_val_if_fail (test_addr != NULL, FALSE); /* Compare the AP address the card has with invalid ethernet MAC addresses. */ - if (!memcmp (test_addr->ether_addr_octet, &invalid_addr1, ETH_ALEN)) + if (!memcmp (test_addr, invalid_addr1, ETH_ALEN)) return FALSE; - if (!memcmp (test_addr->ether_addr_octet, &invalid_addr2, ETH_ALEN)) + if (!memcmp (test_addr, invalid_addr2, ETH_ALEN)) return FALSE; - if (!memcmp (test_addr->ether_addr_octet, &invalid_addr3, ETH_ALEN)) + if (!memcmp (test_addr, invalid_addr3, ETH_ALEN)) return FALSE; - if (!memcmp (test_addr->ether_addr_octet, &invalid_addr4, ETH_ALEN)) + if (!memcmp (test_addr, invalid_addr4, ETH_ALEN)) return FALSE; - if (test_addr->ether_addr_octet[0] & 1) /* Multicast addresses */ + if (test_addr[0] & 1) /* Multicast addresses */ return FALSE; return TRUE; diff --git a/src/NetworkManagerUtils.h b/src/NetworkManagerUtils.h index 6e80069f5..8797b9e89 100644 --- a/src/NetworkManagerUtils.h +++ b/src/NetworkManagerUtils.h @@ -29,7 +29,7 @@ #include "nm-connection.h" #include "nm-platform.h" -gboolean nm_ethernet_address_is_valid (const struct ether_addr *test_addr); +gboolean nm_ethernet_address_is_valid (const guint8 *test_addr); in_addr_t nm_utils_ip4_address_clear_host_address (in_addr_t addr, guint8 plen); void nm_utils_ip6_address_clear_host_address (struct in6_addr *dst, const struct in6_addr *src, guint8 plen); diff --git a/src/devices/bluetooth/nm-bluez-device.c b/src/devices/bluetooth/nm-bluez-device.c index bae66eac7..7273ae8d6 100644 --- a/src/devices/bluetooth/nm-bluez-device.c +++ b/src/devices/bluetooth/nm-bluez-device.c @@ -619,7 +619,6 @@ _set_property_capabilities (NMBluezDevice *self, const char **uuids) static void _set_property_address (NMBluezDevice *self, const char *addr) { - struct ether_addr *tmp; NMBluezDevicePrivate *priv = NM_BLUEZ_DEVICE_GET_PRIVATE (self); if (g_strcmp0 (priv->address, addr) == 0) @@ -635,15 +634,13 @@ _set_property_address (NMBluezDevice *self, const char *addr) return; } - tmp = ether_aton (addr); - if (!tmp) { + if (!nm_utils_hwaddr_aton (addr, priv->bin_address, ETH_ALEN)) { if (priv->address) nm_log_warn (LOGD_BT, "bluez[%s] cannot reset address from '%s' to '%s' (invalid value)", priv->path, priv->address, addr); else nm_log_warn (LOGD_BT, "bluez[%s] cannot reset address from NULL to '%s' (invalid value)", priv->path, addr); return; } - memcpy (priv->bin_address, tmp->ether_addr_octet, ETH_ALEN); priv->address = g_strdup (addr); g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_ADDRESS); } diff --git a/src/devices/nm-device-ethernet.c b/src/devices/nm-device-ethernet.c index b1d1fe001..79871cfa4 100644 --- a/src/devices/nm-device-ethernet.c +++ b/src/devices/nm-device-ethernet.c @@ -361,7 +361,7 @@ update_permanent_hw_address (NMDevice *dev) errno = 0; ret = ioctl (fd, SIOCETHTOOL, &req); errsv = errno; - if ((ret < 0) || !nm_ethernet_address_is_valid ((struct ether_addr *) epaddr->data)) { + if ((ret < 0) || !nm_ethernet_address_is_valid (epaddr->data)) { _LOGD (LOGD_HW | LOGD_ETHER, "unable to read permanent MAC address (error %d)", errsv); /* Fall back to current address */ mac = nm_device_get_hw_address (dev, NULL); @@ -371,8 +371,8 @@ update_permanent_hw_address (NMDevice *dev) memset (epaddr->data, 0, ETH_ALEN); } - if (memcmp (&priv->perm_hw_addr, epaddr->data, ETH_ALEN)) { - memcpy (&priv->perm_hw_addr, epaddr->data, ETH_ALEN); + if (memcmp (priv->perm_hw_addr, epaddr->data, ETH_ALEN)) { + memcpy (priv->perm_hw_addr, epaddr->data, ETH_ALEN); g_object_notify (G_OBJECT (dev), NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS); } @@ -475,21 +475,21 @@ check_connection_compatible (NMDevice *device, NMConnection *connection) return FALSE; mac = nm_setting_wired_get_mac_address (s_wired); - if (try_mac && mac && memcmp (mac->data, &priv->perm_hw_addr, ETH_ALEN)) + if (try_mac && mac && memcmp (mac->data, priv->perm_hw_addr, ETH_ALEN)) return FALSE; /* Check for MAC address blacklist */ mac_blacklist = nm_setting_wired_get_mac_address_blacklist (s_wired); for (mac_blacklist_iter = mac_blacklist; mac_blacklist_iter; mac_blacklist_iter = g_slist_next (mac_blacklist_iter)) { - struct ether_addr addr; + guint8 addr[ETH_ALEN]; - if (!ether_aton_r (mac_blacklist_iter->data, &addr)) { + if (!nm_utils_hwaddr_aton (mac_blacklist_iter->data, addr, ETH_ALEN)) { g_warn_if_reached (); return FALSE; } - if (memcmp (&addr, &priv->perm_hw_addr, ETH_ALEN) == 0) + if (memcmp (addr, priv->perm_hw_addr, ETH_ALEN) == 0) return FALSE; } } diff --git a/src/devices/wifi/nm-device-wifi.c b/src/devices/wifi/nm-device-wifi.c index 2c22a20a4..509513472 100644 --- a/src/devices/wifi/nm-device-wifi.c +++ b/src/devices/wifi/nm-device-wifi.c @@ -365,7 +365,7 @@ find_active_ap (NMDeviceWifi *self, { NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self); int ifindex = nm_device_get_ifindex (NM_DEVICE (self)); - struct ether_addr bssid; + guint8 bssid[ETH_ALEN]; GByteArray *ssid; GSList *iter; int i = 0; @@ -375,13 +375,11 @@ find_active_ap (NMDeviceWifi *self, NM80211Mode devmode; guint32 devfreq; - nm_platform_wifi_get_bssid (ifindex, &bssid); + nm_platform_wifi_get_bssid (ifindex, bssid); _LOGD (LOGD_WIFI, "active BSSID: %02x:%02x:%02x:%02x:%02x:%02x", - bssid.ether_addr_octet[0], bssid.ether_addr_octet[1], - bssid.ether_addr_octet[2], bssid.ether_addr_octet[3], - bssid.ether_addr_octet[4], bssid.ether_addr_octet[5]); + bssid[0], bssid[1], bssid[2], bssid[3], bssid[4], bssid[5]); - if (!nm_ethernet_address_is_valid (&bssid)) + if (!nm_ethernet_address_is_valid (bssid)) return NULL; ssid = nm_platform_wifi_get_ssid (ifindex); @@ -403,7 +401,7 @@ find_active_ap (NMDeviceWifi *self, /* Find this SSID + BSSID in the device's AP list */ for (iter = priv->ap_list; iter; iter = g_slist_next (iter)) { NMAccessPoint *ap = NM_AP (iter->data); - const struct ether_addr *ap_bssid = nm_ap_get_address (ap); + const guint8 *ap_bssid = nm_ap_get_address (ap); const GByteArray *ap_ssid = nm_ap_get_ssid (ap); NM80211Mode apmode; guint32 apfreq; @@ -412,16 +410,15 @@ find_active_ap (NMDeviceWifi *self, ap_ssid ? "'" : "", ap_ssid ? nm_utils_escape_ssid (ap_ssid->data, ap_ssid->len) : "(none)", ap_ssid ? "'" : "", - ap_bssid->ether_addr_octet[0], ap_bssid->ether_addr_octet[1], - ap_bssid->ether_addr_octet[2], ap_bssid->ether_addr_octet[3], - ap_bssid->ether_addr_octet[4], ap_bssid->ether_addr_octet[5]); + ap_bssid[0], ap_bssid[1], ap_bssid[2], + ap_bssid[3], ap_bssid[4], ap_bssid[5]); if (ap == ignore_ap) { _LOGD (LOGD_WIFI, " ignored"); continue; } - if (memcmp (bssid.ether_addr_octet, ap_bssid->ether_addr_octet, ETH_ALEN)) { + if (memcmp (bssid, ap_bssid, ETH_ALEN)) { _LOGD (LOGD_WIFI, " BSSID mismatch"); continue; } @@ -473,16 +470,14 @@ find_active_ap (NMDeviceWifi *self, * we can't match the AP based on frequency at all, just give up. */ if (match_nofreq && ((found_a_band != found_bg_band) || (devfreq == 0))) { - const struct ether_addr *ap_bssid = nm_ap_get_address (match_nofreq); + const guint8 *ap_bssid = nm_ap_get_address (match_nofreq); const GByteArray *ap_ssid = nm_ap_get_ssid (match_nofreq); _LOGD (LOGD_WIFI, " matched %s%s%s %02x:%02x:%02x:%02x:%02x:%02x", ap_ssid ? "'" : "", ap_ssid ? nm_utils_escape_ssid (ap_ssid->data, ap_ssid->len) : "(none)", ap_ssid ? "'" : "", - ap_bssid->ether_addr_octet[0], ap_bssid->ether_addr_octet[1], - ap_bssid->ether_addr_octet[2], ap_bssid->ether_addr_octet[3], - ap_bssid->ether_addr_octet[4], ap_bssid->ether_addr_octet[5]); + ap_bssid[0], ap_bssid[1], ap_bssid[2], ap_bssid[3], ap_bssid[4], ap_bssid[5]); active_ap = match_nofreq; goto done; @@ -603,15 +598,14 @@ periodic_update (NMDeviceWifi *self, NMAccessPoint *ignore_ap) * current AP with it, if the current AP is adhoc. */ if (priv->current_ap && (nm_ap_get_mode (priv->current_ap) == NM_802_11_MODE_ADHOC)) { - struct ether_addr bssid = { {0x0, 0x0, 0x0, 0x0, 0x0, 0x0} }; + guint8 bssid[ETH_ALEN] = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; - nm_platform_wifi_get_bssid (ifindex, &bssid); + nm_platform_wifi_get_bssid (ifindex, bssid); /* 0x02 means "locally administered" and should be OR-ed into * the first byte of IBSS BSSIDs. */ - if ( (bssid.ether_addr_octet[0] & 0x02) - && nm_ethernet_address_is_valid (&bssid)) - nm_ap_set_address (priv->current_ap, &bssid); + if ((bssid[0] & 0x02) && nm_ethernet_address_is_valid (bssid)) + nm_ap_set_address (priv->current_ap, bssid); } new_ap = find_active_ap (self, ignore_ap, FALSE); @@ -627,9 +621,9 @@ periodic_update (NMDeviceWifi *self, NMAccessPoint *ignore_ap) } if (new_ap != priv->current_ap) { - const struct ether_addr *new_bssid = NULL; + const guint8 *new_bssid = NULL; const GByteArray *new_ssid = NULL; - const struct ether_addr *old_bssid = NULL; + const guint8 *old_bssid = NULL; const GByteArray *old_ssid = NULL; char *old_addr = NULL, *new_addr = NULL; @@ -836,21 +830,21 @@ check_connection_compatible (NMDevice *device, NMConnection *connection) return FALSE; mac = nm_setting_wireless_get_mac_address (s_wireless); - if (mac && memcmp (mac->data, &priv->perm_hw_addr, ETH_ALEN)) + if (mac && memcmp (mac->data, priv->perm_hw_addr, ETH_ALEN)) return FALSE; /* Check for MAC address blacklist */ mac_blacklist = nm_setting_wireless_get_mac_address_blacklist (s_wireless); for (mac_blacklist_iter = mac_blacklist; mac_blacklist_iter; mac_blacklist_iter = g_slist_next (mac_blacklist_iter)) { - struct ether_addr addr; + guint8 addr[ETH_ALEN]; - if (!ether_aton_r (mac_blacklist_iter->data, &addr)) { + if (!nm_utils_hwaddr_aton (mac_blacklist_iter->data, addr, ETH_ALEN)) { g_warn_if_reached (); continue; } - if (memcmp (&addr, &priv->perm_hw_addr, ETH_ALEN) == 0) + if (memcmp (&addr, priv->perm_hw_addr, ETH_ALEN) == 0) return FALSE; } @@ -1648,7 +1642,7 @@ supplicant_iface_scan_done_cb (NMSupplicantInterface *iface, static void try_fill_ssid_for_hidden_ap (NMAccessPoint *ap) { - const struct ether_addr *bssid; + const guint8 *bssid; const GSList *connections, *iter; g_return_if_fail (nm_ap_get_ssid (ap) == NULL); @@ -1695,7 +1689,7 @@ merge_scanned_ap (NMDeviceWifi *self, NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self); NMAccessPoint *found_ap = NULL; const GByteArray *ssid; - const struct ether_addr *bssid; + const guint8 *bssid; gboolean strict_match = TRUE; /* Let the manager try to fill in the SSID from seen-bssids lists */ @@ -1709,13 +1703,13 @@ merge_scanned_ap (NMDeviceWifi *self, if (ssid && (nm_utils_is_empty_ssid (ssid->data, ssid->len) == FALSE)) { /* Yay, matched it, no longer treat as hidden */ _LOGD (LOGD_WIFI_SCAN, "matched hidden AP " MAC_FMT " => '%s'", - MAC_ARG (bssid->ether_addr_octet), - nm_utils_escape_ssid (ssid->data, ssid->len)); + MAC_ARG (bssid), + nm_utils_escape_ssid (ssid->data, ssid->len)); nm_ap_set_broadcast (merge_ap, FALSE); } else { /* Didn't have an entry for this AP in the database */ _LOGD (LOGD_WIFI_SCAN, "failed to match hidden AP " MAC_FMT, - MAC_ARG (bssid->ether_addr_octet)); + MAC_ARG (bssid)); } } @@ -1734,7 +1728,7 @@ merge_scanned_ap (NMDeviceWifi *self, if (found_ap) { _LOGD (LOGD_WIFI_SCAN, "merging AP '%s' " MAC_FMT " (%p) with existing (%p)", ssid ? nm_utils_escape_ssid (ssid->data, ssid->len) : "(none)", - MAC_ARG (bssid->ether_addr_octet), + MAC_ARG (bssid), merge_ap, found_ap); @@ -1756,7 +1750,7 @@ merge_scanned_ap (NMDeviceWifi *self, /* New entry in the list */ _LOGD (LOGD_WIFI_SCAN, "adding new AP '%s' " MAC_FMT " (%p)", ssid ? nm_utils_escape_ssid (ssid->data, ssid->len) : "(none)", - MAC_ARG (bssid->ether_addr_octet), + MAC_ARG (bssid), merge_ap); g_object_ref (merge_ap); @@ -1813,16 +1807,14 @@ cull_scan_list (NMDeviceWifi *self) /* Remove outdated APs */ for (elt = outdated_list; elt; elt = g_slist_next (elt)) { NMAccessPoint *outdated_ap = NM_AP (elt->data); - const struct ether_addr *bssid; + const guint8 *bssid; const GByteArray *ssid; bssid = nm_ap_get_address (outdated_ap); ssid = nm_ap_get_ssid (outdated_ap); _LOGD (LOGD_WIFI_SCAN, " removing %02x:%02x:%02x:%02x:%02x:%02x (%s%s%s)", - bssid->ether_addr_octet[0], bssid->ether_addr_octet[1], - bssid->ether_addr_octet[2], bssid->ether_addr_octet[3], - bssid->ether_addr_octet[4], bssid->ether_addr_octet[5], + bssid[0], bssid[1], bssid[2], bssid[3], bssid[4], bssid[5], ssid ? "'" : "", ssid ? nm_utils_escape_ssid (ssid->data, ssid->len) : "(none)", ssid ? "'" : ""); @@ -2542,15 +2534,15 @@ update_permanent_hw_address (NMDevice *device) errno = 0; ret = ioctl (fd, SIOCETHTOOL, &req); errsv = errno; - if ((ret < 0) || !nm_ethernet_address_is_valid ((struct ether_addr *) epaddr->data)) { + if ((ret < 0) || !nm_ethernet_address_is_valid (epaddr->data)) { _LOGD (LOGD_HW | LOGD_ETHER, "unable to read permanent MAC address (error %d)", errsv); /* Fall back to current address */ memcpy (epaddr->data, nm_device_get_hw_address (device, NULL), ETH_ALEN); } - if (memcmp (&priv->perm_hw_addr, epaddr->data, ETH_ALEN)) { - memcpy (&priv->perm_hw_addr, epaddr->data, ETH_ALEN); + if (memcmp (priv->perm_hw_addr, epaddr->data, ETH_ALEN)) { + memcpy (priv->perm_hw_addr, epaddr->data, ETH_ALEN); g_object_notify (G_OBJECT (device), NM_DEVICE_WIFI_PERMANENT_HW_ADDRESS); } @@ -2667,7 +2659,7 @@ act_stage1_prepare (NMDevice *device, NMDeviceStateReason *reason) if (nm_ap_get_mode (ap) == NM_802_11_MODE_INFRA) nm_ap_set_broadcast (ap, FALSE); else if (nm_ap_is_hotspot (ap)) - nm_ap_set_address (ap, (const struct ether_addr *) nm_device_get_hw_address (device, NULL)); + nm_ap_set_address (ap, nm_device_get_hw_address (device, NULL)); priv->ap_list = g_slist_prepend (priv->ap_list, ap); nm_ap_export_to_dbus (ap); @@ -2998,7 +2990,7 @@ activation_success_handler (NMDevice *device) NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self); int ifindex = nm_device_get_ifindex (device); NMAccessPoint *ap; - struct ether_addr bssid = { {0x0, 0x0, 0x0, 0x0, 0x0, 0x0} }; + guint8 bssid[ETH_ALEN] = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }; NMAccessPoint *tmp_ap = NULL; NMActRequest *req; NMConnection *connection; @@ -3029,9 +3021,9 @@ activation_success_handler (NMDevice *device) * But if activation was successful, the card will know the BSSID. Grab * the BSSID off the card and fill in the BSSID of the activation AP. */ - nm_platform_wifi_get_bssid (ifindex, &bssid); + nm_platform_wifi_get_bssid (ifindex, bssid); if (!nm_ethernet_address_is_valid (nm_ap_get_address (ap))) - nm_ap_set_address (ap, &bssid); + nm_ap_set_address (ap, bssid); if (!nm_ap_get_freq (ap)) nm_ap_set_freq (ap, nm_platform_wifi_get_frequency (ifindex)); if (!nm_ap_get_max_bitrate (ap)) diff --git a/src/devices/wifi/nm-wifi-ap-utils.c b/src/devices/wifi/nm-wifi-ap-utils.c index 9b03cbd45..ea457dff0 100644 --- a/src/devices/wifi/nm-wifi-ap-utils.c +++ b/src/devices/wifi/nm-wifi-ap-utils.c @@ -465,7 +465,7 @@ verify_adhoc (NMSettingWirelessSecurity *s_wsec, gboolean nm_ap_utils_complete_connection (const GByteArray *ap_ssid, - const guint8 ap_bssid[ETH_ALEN], + const guint8 *ap_bssid, NM80211Mode ap_mode, guint32 ap_flags, guint32 ap_wpa_flags, diff --git a/src/devices/wifi/nm-wifi-ap-utils.h b/src/devices/wifi/nm-wifi-ap-utils.h index a522f25d2..e2df039da 100644 --- a/src/devices/wifi/nm-wifi-ap-utils.h +++ b/src/devices/wifi/nm-wifi-ap-utils.h @@ -30,7 +30,7 @@ #include gboolean nm_ap_utils_complete_connection (const GByteArray *ssid, - const guint8 bssid[ETH_ALEN], + const guint8 *bssid, NM80211Mode mode, guint32 flags, guint32 wpa_flags, diff --git a/src/devices/wifi/nm-wifi-ap.c b/src/devices/wifi/nm-wifi-ap.c index d9d0777ff..c669afefa 100644 --- a/src/devices/wifi/nm-wifi-ap.c +++ b/src/devices/wifi/nm-wifi-ap.c @@ -45,7 +45,7 @@ typedef struct /* Scanned or cached values */ GByteArray * ssid; - struct ether_addr address; + guint8 address[ETH_ALEN]; NM80211Mode mode; gint8 strength; guint32 freq; /* Frequency in MHz; ie 2412 (== 2.412 GHz) */ @@ -408,13 +408,9 @@ foreach_property_cb (gpointer key, gpointer value, gpointer user_data) nm_ap_set_ssid (ap, ssid); g_byte_array_free (ssid, TRUE); } else if (!strcmp (key, "BSSID")) { - struct ether_addr addr; - if (array->len != ETH_ALEN) return; - memset (&addr, 0, sizeof (struct ether_addr)); - memcpy (&addr, array->data, ETH_ALEN); - nm_ap_set_address (ap, &addr); + nm_ap_set_address (ap, (guint8 *) array->data); } else if (!strcmp (key, "Rates")) { guint32 maxrate = 0; int i; @@ -474,7 +470,7 @@ NMAccessPoint * nm_ap_new_from_properties (const char *supplicant_path, GHashTable *properties) { NMAccessPoint *ap; - const struct ether_addr * addr; + const guint8 *addr; const char bad_bssid1[ETH_ALEN] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; const char bad_bssid2[ETH_ALEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; @@ -489,8 +485,8 @@ nm_ap_new_from_properties (const char *supplicant_path, GHashTable *properties) /* ignore APs with invalid BSSIDs */ addr = nm_ap_get_address (ap); - if ( !(memcmp (addr->ether_addr_octet, bad_bssid1, ETH_ALEN)) - || !(memcmp (addr->ether_addr_octet, bad_bssid2, ETH_ALEN))) { + if ( !(memcmp (addr, bad_bssid1, ETH_ALEN)) + || !(memcmp (addr, bad_bssid2, ETH_ALEN))) { g_object_unref (ap); return NULL; } @@ -728,7 +724,7 @@ nm_ap_dump (NMAccessPoint *ap, const char *prefix) prefix, priv->ssid ? nm_utils_escape_ssid (priv->ssid->data, priv->ssid->len) : "(none)", ap); - nm_log_dbg (LOGD_WIFI_SCAN, " BSSID " MAC_FMT, MAC_ARG (priv->address.ether_addr_octet)); + nm_log_dbg (LOGD_WIFI_SCAN, " BSSID " MAC_FMT, MAC_ARG (priv->address)); nm_log_dbg (LOGD_WIFI_SCAN, " mode %d", priv->mode); nm_log_dbg (LOGD_WIFI_SCAN, " flags 0x%X", priv->flags); nm_log_dbg (LOGD_WIFI_SCAN, " wpa flags 0x%X", priv->wpa_flags); @@ -888,14 +884,16 @@ nm_ap_set_rsn_flags (NMAccessPoint *ap, NM80211ApSecurityFlags flags) * Get/set functions for address * */ -const struct ether_addr * nm_ap_get_address (const NMAccessPoint *ap) +const guint8 * +nm_ap_get_address (const NMAccessPoint *ap) { g_return_val_if_fail (NM_IS_AP (ap), NULL); - return &NM_AP_GET_PRIVATE (ap)->address; + return NM_AP_GET_PRIVATE (ap)->address; } -void nm_ap_set_address (NMAccessPoint *ap, const struct ether_addr * addr) +void +nm_ap_set_address (NMAccessPoint *ap, const guint8 *addr) { NMAccessPointPrivate *priv; @@ -904,8 +902,8 @@ void nm_ap_set_address (NMAccessPoint *ap, const struct ether_addr * addr) priv = NM_AP_GET_PRIVATE (ap); - if (memcmp (addr, &priv->address, sizeof (priv->address))) { - memcpy (&NM_AP_GET_PRIVATE (ap)->address, addr, sizeof (struct ether_addr)); + if (memcmp (addr, priv->address, sizeof (priv->address))) { + memcpy (NM_AP_GET_PRIVATE (ap)->address, addr, sizeof (priv->address)); g_object_notify (G_OBJECT (ap), NM_AP_HW_ADDRESS); } } @@ -1127,7 +1125,7 @@ nm_ap_check_compatible (NMAccessPoint *self, return FALSE; bssid = nm_setting_wireless_get_bssid (s_wireless); - if (bssid && memcmp (bssid->data, &priv->address, ETH_ALEN)) + if (bssid && memcmp (bssid->data, priv->address, ETH_ALEN)) return FALSE; mode = nm_setting_wireless_get_mode (s_wireless); @@ -1181,7 +1179,7 @@ nm_ap_complete_connection (NMAccessPoint *self, g_return_val_if_fail (connection != NULL, FALSE); return nm_ap_utils_complete_connection (priv->ssid, - priv->address.ether_addr_octet, + priv->address, priv->mode, priv->flags, priv->wpa_flags, @@ -1224,10 +1222,10 @@ nm_ap_match_in_list (NMAccessPoint *find_ap, for (iter = ap_list; iter; iter = g_slist_next (iter)) { NMAccessPoint * list_ap = NM_AP (iter->data); const GByteArray * list_ssid = nm_ap_get_ssid (list_ap); - const struct ether_addr * list_addr = nm_ap_get_address (list_ap); + const guint8 * list_addr = nm_ap_get_address (list_ap); const GByteArray * find_ssid = nm_ap_get_ssid (find_ap); - const struct ether_addr * find_addr = nm_ap_get_address (find_ap); + const guint8 * find_addr = nm_ap_get_address (find_ap); /* SSID match; if both APs are hiding their SSIDs, * let matching continue on BSSID and other properties @@ -1240,11 +1238,8 @@ nm_ap_match_in_list (NMAccessPoint *find_ap, /* BSSID match */ if ( (strict_match || nm_ethernet_address_is_valid (find_addr)) && nm_ethernet_address_is_valid (list_addr) - && memcmp (list_addr->ether_addr_octet, - find_addr->ether_addr_octet, - ETH_ALEN) != 0) { + && memcmp (list_addr, find_addr, ETH_ALEN) != 0) continue; - } /* mode match */ if (nm_ap_get_mode (list_ap) != nm_ap_get_mode (find_ap)) diff --git a/src/devices/wifi/nm-wifi-ap.h b/src/devices/wifi/nm-wifi-ap.h index 5b54839c4..ac41dac2d 100644 --- a/src/devices/wifi/nm-wifi-ap.h +++ b/src/devices/wifi/nm-wifi-ap.h @@ -78,8 +78,8 @@ void nm_ap_set_wpa_flags (NMAccessPoint *ap, NM80211ApSecurity NM80211ApSecurityFlags nm_ap_get_rsn_flags (NMAccessPoint *ap); void nm_ap_set_rsn_flags (NMAccessPoint *ap, NM80211ApSecurityFlags flags); -const struct ether_addr *nm_ap_get_address (const NMAccessPoint *ap); -void nm_ap_set_address (NMAccessPoint *ap, const struct ether_addr *addr); +const guint8 *nm_ap_get_address (const NMAccessPoint *ap); +void nm_ap_set_address (NMAccessPoint *ap, const guint8 *addr); NM80211Mode nm_ap_get_mode (NMAccessPoint *ap); void nm_ap_set_mode (NMAccessPoint *ap, const NM80211Mode mode); diff --git a/src/platform/nm-fake-platform.c b/src/platform/nm-fake-platform.c index 4cbfd7854..c1999cb47 100644 --- a/src/platform/nm-fake-platform.c +++ b/src/platform/nm-fake-platform.c @@ -688,7 +688,7 @@ wifi_get_capabilities (NMPlatform *platform, int ifindex, NMDeviceWifiCapabiliti } static gboolean -wifi_get_bssid (NMPlatform *platform, int ifindex, struct ether_addr *bssid) +wifi_get_bssid (NMPlatform *platform, int ifindex, guint8 *bssid) { return FALSE; } diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c index 5bccb44c3..a1d8d833a 100644 --- a/src/platform/nm-linux-platform.c +++ b/src/platform/nm-linux-platform.c @@ -3163,7 +3163,7 @@ wifi_get_capabilities (NMPlatform *platform, int ifindex, NMDeviceWifiCapabiliti } static gboolean -wifi_get_bssid (NMPlatform *platform, int ifindex, struct ether_addr *bssid) +wifi_get_bssid (NMPlatform *platform, int ifindex, guint8 *bssid) { WifiData *wifi_data = wifi_get_wifi_data (platform, ifindex); diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c index 306036283..afefb771e 100644 --- a/src/platform/nm-platform.c +++ b/src/platform/nm-platform.c @@ -1266,7 +1266,7 @@ nm_platform_wifi_get_capabilities (int ifindex, NMDeviceWifiCapabilities *caps) } gboolean -nm_platform_wifi_get_bssid (int ifindex, struct ether_addr *bssid) +nm_platform_wifi_get_bssid (int ifindex, guint8 *bssid) { reset_error (); diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h index 8d80ed870..efddc7d3f 100644 --- a/src/platform/nm-platform.h +++ b/src/platform/nm-platform.h @@ -422,7 +422,7 @@ typedef struct { gboolean (*gre_get_properties) (NMPlatform *, int ifindex, NMPlatformGreProperties *props); gboolean (*wifi_get_capabilities) (NMPlatform *, int ifindex, NMDeviceWifiCapabilities *caps); - gboolean (*wifi_get_bssid) (NMPlatform *, int ifindex, struct ether_addr *bssid); + gboolean (*wifi_get_bssid) (NMPlatform *, int ifindex, guint8 *bssid); GByteArray *(*wifi_get_ssid) (NMPlatform *, int ifindex); guint32 (*wifi_get_frequency) (NMPlatform *, int ifindex); int (*wifi_get_quality) (NMPlatform *, int ifindex); @@ -562,7 +562,7 @@ gboolean nm_platform_vxlan_get_properties (int ifindex, NMPlatformVxlanPropertie gboolean nm_platform_gre_get_properties (int ifindex, NMPlatformGreProperties *props); gboolean nm_platform_wifi_get_capabilities (int ifindex, NMDeviceWifiCapabilities *caps); -gboolean nm_platform_wifi_get_bssid (int ifindex, struct ether_addr *bssid); +gboolean nm_platform_wifi_get_bssid (int ifindex, guint8 *bssid); GByteArray *nm_platform_wifi_get_ssid (int ifindex); guint32 nm_platform_wifi_get_frequency (int ifindex); int nm_platform_wifi_get_quality (int ifindex); diff --git a/src/platform/wifi/wifi-utils-nl80211.c b/src/platform/wifi/wifi-utils-nl80211.c index b2de4e29b..722f4e9c5 100644 --- a/src/platform/wifi/wifi-utils-nl80211.c +++ b/src/platform/wifi/wifi-utils-nl80211.c @@ -442,7 +442,7 @@ wifi_nl80211_get_ssid (WifiData *data) } static gboolean -wifi_nl80211_get_bssid (WifiData *data, struct ether_addr *out_bssid) +wifi_nl80211_get_bssid (WifiData *data, guint8 *out_bssid) { WifiDataNl80211 *nl80211 = (WifiDataNl80211 *) data; struct nl80211_bss_info bss_info; diff --git a/src/platform/wifi/wifi-utils-private.h b/src/platform/wifi/wifi-utils-private.h index 8c97b9c95..47c2386d2 100644 --- a/src/platform/wifi/wifi-utils-private.h +++ b/src/platform/wifi/wifi-utils-private.h @@ -47,7 +47,7 @@ struct WifiData { /* Return current bitrate in Kbps */ guint32 (*get_rate) (WifiData *data); - gboolean (*get_bssid) (WifiData *data, struct ether_addr *out_bssid); + gboolean (*get_bssid) (WifiData *data, guint8 *out_bssid); /* Return a signal strength percentage 0 - 100% for the current BSSID; * return -1 on errors or if not associated. diff --git a/src/platform/wifi/wifi-utils-wext.c b/src/platform/wifi/wifi-utils-wext.c index cc94b69a3..38341fe8f 100644 --- a/src/platform/wifi/wifi-utils-wext.c +++ b/src/platform/wifi/wifi-utils-wext.c @@ -230,7 +230,7 @@ wifi_wext_get_ssid (WifiData *data) } static gboolean -wifi_wext_get_bssid (WifiData *data, struct ether_addr *out_bssid) +wifi_wext_get_bssid (WifiData *data, guint8 *out_bssid) { WifiDataWext *wext = (WifiDataWext *) data; struct iwreq wrq; @@ -243,7 +243,7 @@ wifi_wext_get_bssid (WifiData *data, struct ether_addr *out_bssid) wext->parent.iface, strerror (errno)); return FALSE; } - memcpy (out_bssid->ether_addr_octet, &(wrq.u.ap_addr.sa_data), ETH_ALEN); + memcpy (out_bssid, &(wrq.u.ap_addr.sa_data), ETH_ALEN); return TRUE; } diff --git a/src/platform/wifi/wifi-utils.c b/src/platform/wifi/wifi-utils.c index ff4802752..20eea22cd 100644 --- a/src/platform/wifi/wifi-utils.c +++ b/src/platform/wifi/wifi-utils.c @@ -120,12 +120,12 @@ wifi_utils_get_ssid (WifiData *data) } gboolean -wifi_utils_get_bssid (WifiData *data, struct ether_addr *out_bssid) +wifi_utils_get_bssid (WifiData *data, guint8 *out_bssid) { g_return_val_if_fail (data != NULL, FALSE); g_return_val_if_fail (out_bssid != NULL, FALSE); - memset (out_bssid, 0, sizeof (*out_bssid)); + memset (out_bssid, 0, ETH_ALEN); return data->get_bssid (data, out_bssid); } diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h index 61ab1fd8a..e6fa39fca 100644 --- a/src/platform/wifi/wifi-utils.h +++ b/src/platform/wifi/wifi-utils.h @@ -50,8 +50,8 @@ guint32 wifi_utils_find_freq (WifiData *data, const guint32 *freqs); /* Caller must free returned byte array */ GByteArray *wifi_utils_get_ssid (WifiData *data); -/* Caller must free returned byte array */ -gboolean wifi_utils_get_bssid (WifiData *data, struct ether_addr *out_bssid); +/* out_bssid must be ETH_ALEN bytes */ +gboolean wifi_utils_get_bssid (WifiData *data, guint8 *out_bssid); /* Returns current bitrate in Kbps */ guint32 wifi_utils_get_rate (WifiData *data); diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c index 5a902c5fe..d9644006c 100644 --- a/src/settings/nm-settings-connection.c +++ b/src/settings/nm-settings-connection.c @@ -1732,15 +1732,11 @@ mac_equal (gconstpointer a, gconstpointer b) } static guint8 * -mac_dup (const struct ether_addr *old) +mac_dup (const guint8 *old) { - guint8 *new; - g_return_val_if_fail (old != NULL, NULL); - new = g_malloc0 (ETH_ALEN); - memcpy (new, old, ETH_ALEN); - return new; + return g_memdup (old, ETH_ALEN); } /** @@ -1778,7 +1774,7 @@ nm_settings_connection_get_seen_bssids (NMSettingsConnection *connection) **/ gboolean nm_settings_connection_has_seen_bssid (NMSettingsConnection *connection, - const struct ether_addr *bssid) + const guint8 *bssid) { g_return_val_if_fail (NM_IS_SETTINGS_CONNECTION (connection), FALSE); g_return_val_if_fail (bssid != NULL, FALSE); @@ -1796,7 +1792,7 @@ nm_settings_connection_has_seen_bssid (NMSettingsConnection *connection, **/ void nm_settings_connection_add_seen_bssid (NMSettingsConnection *connection, - const struct ether_addr *seen_bssid) + const guint8 *seen_bssid) { NMSettingsConnectionPrivate *priv = NM_SETTINGS_CONNECTION_GET_PRIVATE (connection); const char *connection_uuid; @@ -1856,12 +1852,12 @@ nm_settings_connection_add_seen_bssid (NMSettingsConnection *connection, static void add_seen_bssid_string (NMSettingsConnection *self, const char *bssid) { - struct ether_addr mac; + guint8 mac[ETH_ALEN]; g_return_if_fail (bssid != NULL); - if (ether_aton_r (bssid, &mac)) { + if (nm_utils_hwaddr_aton (bssid, mac, ETH_ALEN)) { g_hash_table_insert (NM_SETTINGS_CONNECTION_GET_PRIVATE (self)->seen_bssids, - mac_dup (&mac), + mac_dup (mac), g_strdup (bssid)); } } diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h index 9286754e7..ae88c1ac4 100644 --- a/src/settings/nm-settings-connection.h +++ b/src/settings/nm-settings-connection.h @@ -141,10 +141,10 @@ void nm_settings_connection_read_and_fill_timestamp (NMSettingsConnection *conne GSList *nm_settings_connection_get_seen_bssids (NMSettingsConnection *connection); gboolean nm_settings_connection_has_seen_bssid (NMSettingsConnection *connection, - const struct ether_addr *bssid); + const guint8 *bssid); void nm_settings_connection_add_seen_bssid (NMSettingsConnection *connection, - const struct ether_addr *seen_bssid); + const guint8 *seen_bssid); void nm_settings_connection_read_and_fill_seen_bssids (NMSettingsConnection *connection); diff --git a/src/settings/plugins/ifcfg-rh/reader.c b/src/settings/plugins/ifcfg-rh/reader.c index 85554a34f..04ab97dfb 100644 --- a/src/settings/plugins/ifcfg-rh/reader.c +++ b/src/settings/plugins/ifcfg-rh/reader.c @@ -434,16 +434,15 @@ fill_ip4_setting_from_ibft (shvarFile *ifcfg, /* HWADDR */ if (!skip && (p = match_iscsiadm_tag (*iter, ISCSI_HWADDR_TAG, &skip))) { - struct ether_addr *ibft_mac; + guint8 *ibft_mac[ETH_ALEN]; - ibft_mac = ether_aton (p); - if (!ibft_mac) { + if (!nm_utils_hwaddr_aton (p, ibft_mac, ETH_ALEN)) { PARSE_WARNING ("malformed iscsiadm record: invalid hwaddress."); skip = TRUE; continue; } - if (memcmp (ifcfg_mac->data, (guint8 *) ibft_mac->ether_addr_octet, ETH_ALEN)) { + if (memcmp (ifcfg_mac->data, ibft_mac, ETH_ALEN)) { /* This record isn't for the current device, ignore it */ skip = TRUE; continue; @@ -3570,13 +3569,12 @@ make_wireless_setting (shvarFile *ifcfg, value = svGetValue (ifcfg, "HWADDR_BLACKLIST", FALSE); if (value) { char **list = NULL, **iter; - struct ether_addr addr; list = g_strsplit_set (value, " \t", 0); for (iter = list; iter && *iter; iter++) { if (**iter == '\0') continue; - if (!ether_aton_r (*iter, &addr)) { + if (!nm_utils_hwaddr_valid (*iter, ETH_ALEN)) { PARSE_WARNING ("invalid MAC in HWADDR_BLACKLIST '%s'", *iter); continue; } @@ -3946,13 +3944,12 @@ make_wired_setting (shvarFile *ifcfg, value = svGetValue (ifcfg, "HWADDR_BLACKLIST", FALSE); if (value) { char **list = NULL, **iter; - struct ether_addr addr; list = g_strsplit_set (value, " \t", 0); for (iter = list; iter && *iter; iter++) { if (**iter == '\0') continue; - if (!ether_aton_r (*iter, &addr)) { + if (!nm_utils_hwaddr_valid (*iter, ETH_ALEN)) { PARSE_WARNING ("invalid MAC in HWADDR_BLACKLIST '%s'", *iter); continue; }