summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2008-10-28 19:26:00 +0000
committerDan Williams <dcbw@redhat.com>2008-10-28 19:26:00 +0000
commit69713a8b93c406d9dc3f2be010b41aea657b190e (patch)
tree056e05e542a61cbf540db8573088ff7c6175b9b1 /src
parent2161a7a043d3af98097be32044ee8e2aaaf637a3 (diff)
downloadNetworkManager-69713a8b93c406d9dc3f2be010b41aea657b190e.tar.gz
2008-10-28 Dan Williams <dcbw@redhat.com>
Patch from Tambet Ingo <tambet@gmail.com> * libnm-util/libnm-util.ver libnm-util/nm-setting-wireless.c libnm-util/nm-setting-wireless.h - Make properties private and add accessor functions * src/NetworkManagerAP.c src/nm-device-wifi.c src/nm-manager.c src/supplicant-manager/nm-supplicant-config.c system-settings/plugins/ifcfg-fedora/nm-ifcfg-connection.c system-settings/plugins/ifcfg-fedora/reader.c system-settings/plugins/ifcfg-suse/parser.c system-settings/plugins/ifupdown/parser.c - Use wireless setting accessors git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4231 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Diffstat (limited to 'src')
-rw-r--r--src/NetworkManagerAP.c65
-rw-r--r--src/nm-device-wifi.c25
-rw-r--r--src/nm-manager.c23
-rw-r--r--src/supplicant-manager/nm-supplicant-config.c18
4 files changed, 77 insertions, 54 deletions
diff --git a/src/NetworkManagerAP.c b/src/NetworkManagerAP.c
index 459f82d609..0b22481812 100644
--- a/src/NetworkManagerAP.c
+++ b/src/NetworkManagerAP.c
@@ -545,32 +545,32 @@ nm_ap_new_fake_from_connection (NMConnection *connection)
NMAccessPoint *ap;
NMSettingWireless *s_wireless;
NMSettingWirelessSecurity *s_wireless_sec;
- GByteArray *ssid;
- guint32 len;
+ const GByteArray *ssid;
+ const char *mode;
+ const char *band;
+ guint32 channel;
guint32 flags;
g_return_val_if_fail (connection != NULL, NULL);
s_wireless = NM_SETTING_WIRELESS (nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS));
g_return_val_if_fail (s_wireless != NULL, NULL);
- g_return_val_if_fail (s_wireless->ssid != NULL, NULL);
- g_return_val_if_fail (s_wireless->ssid->len > 0, NULL);
+
+ ssid = nm_setting_wireless_get_ssid (s_wireless);
+ g_return_val_if_fail (ssid != NULL, NULL);
+ g_return_val_if_fail (ssid->len > 0, NULL);
ap = nm_ap_new ();
nm_ap_set_fake (ap, TRUE);
-
- len = s_wireless->ssid->len;
- ssid = g_byte_array_sized_new (len);
- g_byte_array_append (ssid, (const guint8 *) s_wireless->ssid->data, len);
nm_ap_set_ssid (ap, ssid);
- g_byte_array_free (ssid, TRUE);
// FIXME: bssid too?
- if (s_wireless->mode) {
- if (!strcmp (s_wireless->mode, "infrastructure"))
+ mode = nm_setting_wireless_get_mode (s_wireless);
+ if (mode) {
+ if (!strcmp (mode, "infrastructure"))
nm_ap_set_mode (ap, NM_802_11_MODE_INFRA);
- else if (!strcmp (s_wireless->mode, "adhoc"))
+ else if (!strcmp (mode, "adhoc"))
nm_ap_set_mode (ap, NM_802_11_MODE_ADHOC);
else
goto error;
@@ -578,8 +578,11 @@ nm_ap_new_fake_from_connection (NMConnection *connection)
nm_ap_set_mode (ap, NM_802_11_MODE_INFRA);
}
- if (s_wireless->band && s_wireless->channel) {
- guint32 freq = channel_to_freq (s_wireless->channel, s_wireless->band);
+ band = nm_setting_wireless_get_band (s_wireless);
+ channel = nm_setting_wireless_get_channel (s_wireless);
+
+ if (band && channel) {
+ guint32 freq = channel_to_freq (channel, band);
if (freq == 0)
goto error;
@@ -1196,6 +1199,10 @@ nm_ap_check_compatible (NMAccessPoint *self,
NMAccessPointPrivate *priv;
NMSettingWireless *s_wireless;
NMSettingWirelessSecurity *s_wireless_sec;
+ const char *mode;
+ const char *band;
+ const GByteArray *bssid;
+ guint32 channel;
g_return_val_if_fail (NM_IS_AP (self), FALSE);
g_return_val_if_fail (NM_IS_CONNECTION (connection), FALSE);
@@ -1206,37 +1213,37 @@ nm_ap_check_compatible (NMAccessPoint *self,
if (s_wireless == NULL)
return FALSE;
- if (!nm_utils_same_ssid (s_wireless->ssid, priv->ssid, TRUE))
+ if (!nm_utils_same_ssid (nm_setting_wireless_get_ssid (s_wireless), priv->ssid, TRUE))
return FALSE;
- if (s_wireless->bssid) {
- if (memcmp (s_wireless->bssid->data, &priv->address, ETH_ALEN))
- return FALSE;
- }
+ bssid = nm_setting_wireless_get_bssid (s_wireless);
+ if (bssid && memcmp (bssid->data, &priv->address, ETH_ALEN))
+ return FALSE;
- if (s_wireless->mode) {
- if ( !strcmp (s_wireless->mode, "infrastructure")
- && (priv->mode != NM_802_11_MODE_INFRA))
+ mode = nm_setting_wireless_get_mode (s_wireless);
+ if (mode) {
+ if (!strcmp (mode, "infrastructure") && (priv->mode != NM_802_11_MODE_INFRA))
return FALSE;
- if ( !strcmp (s_wireless->mode, "adhoc")
- && (priv->mode != NM_802_11_MODE_ADHOC))
+ if (!strcmp (mode, "adhoc") && (priv->mode != NM_802_11_MODE_ADHOC))
return FALSE;
}
- if (s_wireless->band) {
- if (!strcmp (s_wireless->band, "a")) {
+ band = nm_setting_wireless_get_band (s_wireless);
+ if (band) {
+ if (!strcmp (band, "a")) {
if (priv->freq < 4915 || priv->freq > 5825)
return FALSE;
- } else if (!strcmp (s_wireless->band, "bg")) {
+ } else if (!strcmp (band, "bg")) {
if (priv->freq < 2412 || priv->freq > 2484)
return FALSE;
}
}
- if (s_wireless->channel) {
+ channel = nm_setting_wireless_get_channel (s_wireless);
+ if (channel) {
guint32 ap_chan = freq_to_channel (priv->freq);
- if (s_wireless->channel != ap_chan)
+ if (channel != ap_chan)
return FALSE;
}
diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c
index 6ab6144e16..4a8d35646c 100644
--- a/src/nm-device-wifi.c
+++ b/src/nm-device-wifi.c
@@ -986,6 +986,7 @@ real_check_connection_compatible (NMDevice *device,
NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
NMSettingConnection *s_con;
NMSettingWireless *s_wireless;
+ const GByteArray *mac;
s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
g_assert (s_con);
@@ -1005,8 +1006,8 @@ real_check_connection_compatible (NMDevice *device,
return FALSE;
}
- if ( s_wireless->mac_address
- && memcmp (s_wireless->mac_address->data, &(priv->hw_addr.ether_addr_octet), ETH_ALEN)) {
+ mac = nm_setting_wireless_get_mac_address (s_wireless);
+ if (mac && memcmp (mac->data, &(priv->hw_addr.ether_addr_octet), ETH_ALEN)) {
g_set_error (error,
NM_WIFI_ERROR, NM_WIFI_ERROR_CONNECTION_INCOMPATIBLE,
"The connection's MAC address did not match this device.");
@@ -1055,6 +1056,7 @@ real_get_best_auto_connection (NMDevice *dev,
NMConnection *connection = NM_CONNECTION (iter->data);
NMSettingConnection *s_con;
NMSettingWireless *s_wireless;
+ const GByteArray *mac;
NMSettingIP4Config *s_ip4;
s_con = (NMSettingConnection *) nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION);
@@ -1069,10 +1071,9 @@ real_get_best_auto_connection (NMDevice *dev,
if (!s_wireless)
continue;
- if (s_wireless->mac_address) {
- if (memcmp (s_wireless->mac_address->data, priv->hw_addr.ether_addr_octet, ETH_ALEN))
+ mac = nm_setting_wireless_get_mac_address (s_wireless);
+ if (mac && memcmp (mac->data, priv->hw_addr.ether_addr_octet, ETH_ALEN))
continue;
- }
/* Use the connection if it's a shared connection */
s_ip4 = (NMSettingIP4Config *) nm_connection_get_setting (connection, NM_TYPE_SETTING_IP4_CONFIG);
@@ -2635,9 +2636,11 @@ build_supplicant_config (NMDeviceWifi *self,
* nothing was specified then pick something usable.
*/
if ((nm_ap_get_mode (ap) == NM_802_11_MODE_ADHOC) && nm_ap_get_user_created (ap)) {
+ const char *band = nm_setting_wireless_get_band (s_wireless);
+
adhoc_freq = nm_ap_get_freq (ap);
if (!adhoc_freq) {
- if (s_wireless->band && !strcmp (s_wireless->band, "a")) {
+ if (band && !strcmp (band, "a")) {
guint32 a_freqs[] = {5180, 5200, 5220, 5745, 5765, 5785, 5805, 0};
adhoc_freq = find_supported_frequency (self, a_freqs);
} else {
@@ -2647,7 +2650,7 @@ build_supplicant_config (NMDeviceWifi *self,
}
if (!adhoc_freq) {
- if (s_wireless->band && !strcmp (s_wireless->band, "a"))
+ if (band && !strcmp (band, "a"))
adhoc_freq = 5180;
else
adhoc_freq = 2462;
@@ -2878,7 +2881,7 @@ real_act_stage2_config (NMDevice *dev, NMDeviceStateReason *reason)
}
/* have secrets, or no secrets required */
- if (s_wireless->security) {
+ if (nm_setting_wireless_get_security (s_wireless)) {
nm_info ("Activation (%s/wireless): connection '%s' has security"
", and secrets exist. No new secrets needed.",
iface, nm_setting_connection_get_id (s_connection));
@@ -2949,6 +2952,7 @@ real_act_stage4_get_ip4_config (NMDevice *dev,
if ((ret == NM_ACT_STAGE_RETURN_SUCCESS) && *config) {
NMConnection *connection;
NMSettingWireless *s_wireless;
+ guint32 mtu;
connection = nm_act_request_get_connection (nm_device_get_act_request (dev));
g_assert (connection);
@@ -2956,8 +2960,9 @@ real_act_stage4_get_ip4_config (NMDevice *dev,
g_assert (s_wireless);
/* MTU override */
- if (s_wireless->mtu)
- nm_ip4_config_set_mtu (*config, s_wireless->mtu);
+ mtu = nm_setting_wireless_get_mtu (s_wireless);
+ if (mtu)
+ nm_ip4_config_set_mtu (*config, mtu);
}
return ret;
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 4ae935a0c0..def60e193b 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -1586,24 +1586,33 @@ manager_hidden_ap_found (NMDeviceInterface *device,
for (iter = connections; iter && !done; iter = g_slist_next (iter)) {
NMConnection *connection = NM_CONNECTION (iter->data);
NMSettingWireless *s_wireless;
- GSList *seen_iter;
-
+ const GByteArray *ssid;
+ guint32 num_bssids;
+ guint32 i;
+
s_wireless = (NMSettingWireless *) nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS);
- if (!s_wireless || !s_wireless->seen_bssids)
+ if (!s_wireless)
+ goto next;
+
+ num_bssids = nm_setting_wireless_get_num_seen_bssids (s_wireless);
+ if (num_bssids < 1)
goto next;
- g_assert (s_wireless->ssid);
- for (seen_iter = s_wireless->seen_bssids; seen_iter; seen_iter = g_slist_next (seen_iter)) {
+ ssid = nm_setting_wireless_get_ssid (s_wireless);
+ g_assert (ssid);
+
+ for (i = 0; i < num_bssids; i++) {
+ const char *seen_bssid = nm_setting_wireless_get_seen_bssid (s_wireless, i);
struct ether_addr seen_addr;
- if (!ether_aton_r ((char *) seen_iter->data, &seen_addr))
+ if (!ether_aton_r (seen_bssid, &seen_addr))
continue;
if (memcmp (ap_addr, &seen_addr, sizeof (struct ether_addr)))
continue;
/* Copy the SSID from the connection to the AP */
- nm_ap_set_ssid (ap, s_wireless->ssid);
+ nm_ap_set_ssid (ap, ssid);
done = TRUE;
}
diff --git a/src/supplicant-manager/nm-supplicant-config.c b/src/supplicant-manager/nm-supplicant-config.c
index 8caad2f3c2..98b6e03ec1 100644
--- a/src/supplicant-manager/nm-supplicant-config.c
+++ b/src/supplicant-manager/nm-supplicant-config.c
@@ -336,13 +336,16 @@ nm_supplicant_config_add_setting_wireless (NMSupplicantConfig * self,
{
NMSupplicantConfigPrivate *priv;
gboolean is_adhoc;
+ const char *mode;
+ const GByteArray *id;
g_return_val_if_fail (NM_IS_SUPPLICANT_CONFIG (self), FALSE);
g_return_val_if_fail (setting != NULL, FALSE);
priv = NM_SUPPLICANT_CONFIG_GET_PRIVATE (self);
-
- is_adhoc = (setting->mode && !strcmp (setting->mode, "adhoc")) ? TRUE : FALSE;
+
+ mode = nm_setting_wireless_get_mode (setting);
+ is_adhoc = (mode && !strcmp (mode, "adhoc")) ? TRUE : FALSE;
if (is_adhoc)
priv->ap_scan = 2;
else if (is_broadcast == FALSE) {
@@ -352,10 +355,8 @@ nm_supplicant_config_add_setting_wireless (NMSupplicantConfig * self,
priv->ap_scan = has_scan_capa_ssid ? 1 : 2;
}
- if (!nm_supplicant_config_add_option (self, "ssid",
- (char *) setting->ssid->data,
- setting->ssid->len,
- FALSE)) {
+ id = nm_setting_wireless_get_ssid (setting);
+ if (!nm_supplicant_config_add_option (self, "ssid", (char *) id->data, id->len, FALSE)) {
nm_warning ("Error adding SSID to supplicant config.");
return FALSE;
}
@@ -387,10 +388,11 @@ nm_supplicant_config_add_setting_wireless (NMSupplicantConfig * self,
return FALSE;
}
- if (setting->bssid && setting->bssid->len) {
+ id = nm_setting_wireless_get_bssid (setting);
+ if (id && id->len) {
char *str_bssid;
- str_bssid = g_strdup_printf (MAC_FMT, MAC_ARG (setting->bssid->data));
+ str_bssid = g_strdup_printf (MAC_FMT, MAC_ARG (id->data));
if (!nm_supplicant_config_add_option (self, "bssid",
str_bssid, strlen (str_bssid),
FALSE)) {