NetworkManager r4231 - in trunk: . libnm-util src src/supplicant-manager system-settings/plugins/ifcfg-fedora system-settings/plugins/ifcfg-suse system-settings/plugins/ifupdown
- From: dcbw svn gnome org
- To: svn-commits-list gnome org
- Subject: NetworkManager r4231 - in trunk: . libnm-util src src/supplicant-manager system-settings/plugins/ifcfg-fedora system-settings/plugins/ifcfg-suse system-settings/plugins/ifupdown
- Date: Tue, 28 Oct 2008 19:26:01 +0000 (UTC)
Author: dcbw
Date: Tue Oct 28 19:26:00 2008
New Revision: 4231
URL: http://svn.gnome.org/viewvc/NetworkManager?rev=4231&view=rev
Log:
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
Modified:
trunk/ChangeLog
trunk/libnm-util/libnm-util.ver
trunk/libnm-util/nm-setting-wireless.c
trunk/libnm-util/nm-setting-wireless.h
trunk/src/NetworkManagerAP.c
trunk/src/nm-device-wifi.c
trunk/src/nm-manager.c
trunk/src/supplicant-manager/nm-supplicant-config.c
trunk/system-settings/plugins/ifcfg-fedora/nm-ifcfg-connection.c
trunk/system-settings/plugins/ifcfg-fedora/reader.c
trunk/system-settings/plugins/ifcfg-suse/parser.c
trunk/system-settings/plugins/ifupdown/parser.c
Modified: trunk/libnm-util/libnm-util.ver
==============================================================================
--- trunk/libnm-util/libnm-util.ver (original)
+++ trunk/libnm-util/libnm-util.ver Tue Oct 28 19:26:00 2008
@@ -145,6 +145,19 @@
nm_setting_wireless_error_quark;
nm_setting_wireless_get_type;
nm_setting_wireless_new;
+ nm_setting_wireless_get_ssid;
+ nm_setting_wireless_get_mode;
+ nm_setting_wireless_get_band;
+ nm_setting_wireless_get_channel;
+ nm_setting_wireless_get_bssid;
+ nm_setting_wireless_get_rate;
+ nm_setting_wireless_get_tx_power;
+ nm_setting_wireless_get_mac_address;
+ nm_setting_wireless_get_mtu;
+ nm_setting_wireless_get_security;
+ nm_setting_wireless_add_seen_bssid;
+ nm_setting_wireless_get_num_seen_bssids;
+ nm_setting_wireless_get_seen_bssid;
nm_setting_wireless_security_error_get_type;
nm_setting_wireless_security_error_quark;
nm_setting_wireless_security_get_type;
Modified: trunk/libnm-util/nm-setting-wireless.c
==============================================================================
--- trunk/libnm-util/nm-setting-wireless.c (original)
+++ trunk/libnm-util/nm-setting-wireless.c Tue Oct 28 19:26:00 2008
@@ -75,6 +75,21 @@
G_DEFINE_TYPE (NMSettingWireless, nm_setting_wireless, NM_TYPE_SETTING)
+#define NM_SETTING_WIRELESS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIRELESS, NMSettingWirelessPrivate))
+
+typedef struct {
+ GByteArray *ssid;
+ char *mode;
+ char *band;
+ guint32 channel;
+ GByteArray *bssid;
+ guint32 rate;
+ guint32 tx_power;
+ GByteArray *mac_address;
+ guint32 mtu;
+ GSList *seen_bssids;
+ char *security;
+} NMSettingWirelessPrivate;
enum {
PROP_0,
PROP_SSID,
@@ -116,9 +131,13 @@
guint32 ap_rsn,
guint32 ap_mode)
{
+ NMSettingWirelessPrivate *priv;
+
g_return_val_if_fail (NM_IS_SETTING_WIRELESS (s_wireless), FALSE);
- if (!s_wireless->security) {
+ priv = NM_SETTING_WIRELESS_GET_PRIVATE (s_wireless);
+
+ if (!priv->security) {
if ( (ap_flags & NM_802_11_AP_FLAGS_PRIVACY)
|| (ap_wpa != NM_802_11_AP_SEC_NONE)
|| (ap_rsn != NM_802_11_AP_SEC_NONE))
@@ -126,7 +145,7 @@
return TRUE;
}
- if (strcmp (s_wireless->security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME) != 0)
+ if (strcmp (priv->security, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME) != 0)
return FALSE;
if (s_wireless_sec == NULL || !s_wireless_sec->key_mgmt)
@@ -272,6 +291,136 @@
return (NMSetting *) g_object_new (NM_TYPE_SETTING_WIRELESS, NULL);
}
+const GByteArray *
+nm_setting_wireless_get_ssid (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), NULL);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->ssid;
+}
+
+const char *
+nm_setting_wireless_get_mode (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), NULL);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->mode;
+}
+
+const char *
+nm_setting_wireless_get_band (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), NULL);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->band;
+}
+
+guint32
+nm_setting_wireless_get_channel (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), 0);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->channel;
+}
+
+const GByteArray *
+nm_setting_wireless_get_bssid (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), NULL);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->bssid;
+}
+
+guint32
+nm_setting_wireless_get_rate (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), 0);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->rate;
+}
+
+guint32
+nm_setting_wireless_get_tx_power (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), 0);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->tx_power;
+}
+
+const GByteArray *
+nm_setting_wireless_get_mac_address (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), NULL);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->mac_address;
+}
+
+guint32
+nm_setting_wireless_get_mtu (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), 0);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->mtu;
+}
+
+const char *
+nm_setting_wireless_get_security (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), NULL);
+
+ return NM_SETTING_WIRELESS_GET_PRIVATE (setting)->security;
+}
+
+gboolean
+nm_setting_wireless_add_seen_bssid (NMSettingWireless *setting,
+ const char *bssid)
+{
+ NMSettingWirelessPrivate *priv;
+ char *lower_bssid;
+ GSList *iter;
+ gboolean found = FALSE;
+
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), FALSE);
+ g_return_val_if_fail (bssid != NULL, FALSE);
+
+ lower_bssid = g_ascii_strdown (bssid, -1);
+ if (!lower_bssid)
+ return FALSE;
+
+ priv = NM_SETTING_WIRELESS_GET_PRIVATE (setting);
+
+ for (iter = priv->seen_bssids; iter; iter = iter->next) {
+ if (!strcmp ((char *) iter->data, lower_bssid)) {
+ found = TRUE;
+ break;
+ }
+ }
+
+ if (!found)
+ priv->seen_bssids = g_slist_prepend (priv->seen_bssids, lower_bssid);
+ else
+ g_free (lower_bssid);
+
+ return !found;
+}
+
+guint32
+nm_setting_wireless_get_num_seen_bssids (NMSettingWireless *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), 0);
+
+ return g_slist_length (NM_SETTING_WIRELESS_GET_PRIVATE (setting)->seen_bssids);
+}
+
+const char *
+nm_setting_wireless_get_seen_bssid (NMSettingWireless *setting,
+ guint32 i)
+{
+ g_return_val_if_fail (NM_IS_SETTING_WIRELESS (setting), NULL);
+
+ return (const char *) g_slist_nth (NM_SETTING_WIRELESS_GET_PRIVATE (setting)->seen_bssids, i);
+}
+
static gint
find_setting_by_name (gconstpointer a, gconstpointer b)
{
@@ -284,12 +433,12 @@
static gboolean
verify (NMSetting *setting, GSList *all_settings, GError **error)
{
- NMSettingWireless *self = NM_SETTING_WIRELESS (setting);
+ NMSettingWirelessPrivate *priv = NM_SETTING_WIRELESS_GET_PRIVATE (setting);
const char *valid_modes[] = { "infrastructure", "adhoc", NULL };
const char *valid_bands[] = { "a", "bg", NULL };
GSList *iter;
- if (!self->ssid) {
+ if (!priv->ssid) {
g_set_error (error,
NM_SETTING_WIRELESS_ERROR,
NM_SETTING_WIRELESS_ERROR_MISSING_PROPERTY,
@@ -297,7 +446,7 @@
return FALSE;
}
- if (!self->ssid->len || self->ssid->len > 32) {
+ if (!priv->ssid->len || priv->ssid->len > 32) {
g_set_error (error,
NM_SETTING_WIRELESS_ERROR,
NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY,
@@ -305,7 +454,7 @@
return FALSE;
}
- if (self->mode && !nm_utils_string_in_list (self->mode, valid_modes)) {
+ if (priv->mode && !nm_utils_string_in_list (priv->mode, valid_modes)) {
g_set_error (error,
NM_SETTING_WIRELESS_ERROR,
NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY,
@@ -313,7 +462,7 @@
return FALSE;
}
- if (self->band && !nm_utils_string_in_list (self->band, valid_bands)) {
+ if (priv->band && !nm_utils_string_in_list (priv->band, valid_bands)) {
g_set_error (error,
NM_SETTING_WIRELESS_ERROR,
NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY,
@@ -321,7 +470,7 @@
return FALSE;
}
- if (self->channel && !self->band) {
+ if (priv->channel && !priv->band) {
g_set_error (error,
NM_SETTING_WIRELESS_ERROR,
NM_SETTING_WIRELESS_ERROR_CHANNEL_REQUIRES_BAND,
@@ -329,8 +478,8 @@
return FALSE;
}
- if (self->channel) {
- if (!strcmp (self->band, "a")) {
+ if (priv->channel) {
+ if (!strcmp (priv->band, "a")) {
int i;
int valid_channels[] = { 7, 8, 9, 11, 12, 16, 34, 36, 40, 44, 48,
52, 56, 60, 64, 100, 104, 108, 112, 116,
@@ -339,7 +488,7 @@
192, 196, 0 };
for (i = 0; valid_channels[i]; i++) {
- if (self->channel == valid_channels[i])
+ if (priv->channel == valid_channels[i])
break;
}
@@ -350,7 +499,7 @@
NM_SETTING_WIRELESS_CHANNEL);
return FALSE;
}
- } else if (!strcmp (self->band, "bg") && self->channel > 14) {
+ } else if (!strcmp (priv->band, "bg") && priv->channel > 14) {
g_set_error (error,
NM_SETTING_WIRELESS_ERROR,
NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY,
@@ -359,7 +508,7 @@
}
}
- if (self->bssid && self->bssid->len != ETH_ALEN) {
+ if (priv->bssid && priv->bssid->len != ETH_ALEN) {
g_set_error (error,
NM_SETTING_WIRELESS_ERROR,
NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY,
@@ -367,7 +516,7 @@
return FALSE;
}
- if (self->mac_address && self->mac_address->len != ETH_ALEN) {
+ if (priv->mac_address && priv->mac_address->len != ETH_ALEN) {
g_set_error (error,
NM_SETTING_WIRELESS_ERROR,
NM_SETTING_WIRELESS_ERROR_INVALID_PROPERTY,
@@ -375,7 +524,7 @@
return FALSE;
}
- for (iter = self->seen_bssids; iter; iter = iter->next) {
+ for (iter = priv->seen_bssids; iter; iter = iter->next) {
struct ether_addr addr;
if (!ether_aton_r (iter->data, &addr)) {
@@ -387,8 +536,8 @@
}
}
- if ( self->security
- && !g_slist_find_custom (all_settings, self->security, find_setting_by_name)) {
+ if ( priv->security
+ && !g_slist_find_custom (all_settings, priv->security, find_setting_by_name)) {
g_set_error (error,
NM_SETTING_WIRELESS_ERROR,
NM_SETTING_WIRELESS_ERROR_MISSING_SECURITY_SETTING,
@@ -408,20 +557,20 @@
static void
finalize (GObject *object)
{
- NMSettingWireless *self = NM_SETTING_WIRELESS (object);
+ NMSettingWirelessPrivate *priv = NM_SETTING_WIRELESS_GET_PRIVATE (object);
- g_free (self->mode);
- g_free (self->band);
- g_free (self->security);
-
- if (self->ssid)
- g_byte_array_free (self->ssid, TRUE);
- if (self->bssid)
- g_byte_array_free (self->bssid, TRUE);
- if (self->mac_address)
- g_byte_array_free (self->mac_address, TRUE);
+ g_free (priv->mode);
+ g_free (priv->band);
+ g_free (priv->security);
+
+ if (priv->ssid)
+ g_byte_array_free (priv->ssid, TRUE);
+ if (priv->bssid)
+ g_byte_array_free (priv->bssid, TRUE);
+ if (priv->mac_address)
+ g_byte_array_free (priv->mac_address, TRUE);
- nm_utils_slist_free (self->seen_bssids, g_free);
+ nm_utils_slist_free (priv->seen_bssids, g_free);
G_OBJECT_CLASS (nm_setting_wireless_parent_class)->finalize (object);
}
@@ -430,51 +579,51 @@
set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec)
{
- NMSettingWireless *setting = NM_SETTING_WIRELESS (object);
+ NMSettingWirelessPrivate *priv = NM_SETTING_WIRELESS_GET_PRIVATE (object);
switch (prop_id) {
case PROP_SSID:
- if (setting->ssid)
- g_byte_array_free (setting->ssid, TRUE);
- setting->ssid = g_value_dup_boxed (value);
+ if (priv->ssid)
+ g_byte_array_free (priv->ssid, TRUE);
+ priv->ssid = g_value_dup_boxed (value);
break;
case PROP_MODE:
- g_free (setting->mode);
- setting->mode = g_value_dup_string (value);
+ g_free (priv->mode);
+ priv->mode = g_value_dup_string (value);
break;
case PROP_BAND:
- g_free (setting->band);
- setting->band = g_value_dup_string (value);
+ g_free (priv->band);
+ priv->band = g_value_dup_string (value);
break;
case PROP_CHANNEL:
- setting->channel = g_value_get_uint (value);
+ priv->channel = g_value_get_uint (value);
break;
case PROP_BSSID:
- if (setting->bssid)
- g_byte_array_free (setting->bssid, TRUE);
- setting->bssid = g_value_dup_boxed (value);
+ if (priv->bssid)
+ g_byte_array_free (priv->bssid, TRUE);
+ priv->bssid = g_value_dup_boxed (value);
break;
case PROP_RATE:
- setting->rate = g_value_get_uint (value);
+ priv->rate = g_value_get_uint (value);
break;
case PROP_TX_POWER:
- setting->tx_power = g_value_get_uint (value);
+ priv->tx_power = g_value_get_uint (value);
break;
case PROP_MAC_ADDRESS:
- if (setting->mac_address)
- g_byte_array_free (setting->mac_address, TRUE);
- setting->mac_address = g_value_dup_boxed (value);
+ if (priv->mac_address)
+ g_byte_array_free (priv->mac_address, TRUE);
+ priv->mac_address = g_value_dup_boxed (value);
break;
case PROP_MTU:
- setting->mtu = g_value_get_uint (value);
+ priv->mtu = g_value_get_uint (value);
break;
case PROP_SEEN_BSSIDS:
- nm_utils_slist_free (setting->seen_bssids, g_free);
- setting->seen_bssids = g_value_dup_boxed (value);
+ nm_utils_slist_free (priv->seen_bssids, g_free);
+ priv->seen_bssids = g_value_dup_boxed (value);
break;
case PROP_SEC:
- g_free (setting->security);
- setting->security = g_value_dup_string (value);
+ g_free (priv->security);
+ priv->security = g_value_dup_string (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -490,37 +639,37 @@
switch (prop_id) {
case PROP_SSID:
- g_value_set_boxed (value, setting->ssid);
+ g_value_set_boxed (value, nm_setting_wireless_get_ssid (setting));
break;
case PROP_MODE:
- g_value_set_string (value, setting->mode);
+ g_value_set_string (value, nm_setting_wireless_get_mode (setting));
break;
case PROP_BAND:
- g_value_set_string (value, setting->band);
+ g_value_set_string (value, nm_setting_wireless_get_band (setting));
break;
case PROP_CHANNEL:
- g_value_set_uint (value, setting->channel);
+ g_value_set_uint (value, nm_setting_wireless_get_channel (setting));
break;
case PROP_BSSID:
- g_value_set_boxed (value, setting->bssid);
+ g_value_set_boxed (value, nm_setting_wireless_get_bssid (setting));
break;
case PROP_RATE:
- g_value_set_uint (value, setting->rate);
+ g_value_set_uint (value, nm_setting_wireless_get_rate (setting));
break;
case PROP_TX_POWER:
- g_value_set_uint (value, setting->tx_power);
+ g_value_set_uint (value, nm_setting_wireless_get_tx_power (setting));
break;
case PROP_MAC_ADDRESS:
- g_value_set_boxed (value, setting->mac_address);
+ g_value_set_boxed (value, nm_setting_wireless_get_mac_address (setting));
break;
case PROP_MTU:
- g_value_set_uint (value, setting->mtu);
+ g_value_set_uint (value, nm_setting_wireless_get_mtu (setting));
break;
case PROP_SEEN_BSSIDS:
- g_value_set_boxed (value, setting->seen_bssids);
+ g_value_set_boxed (value, NM_SETTING_WIRELESS_GET_PRIVATE (setting)->seen_bssids);
break;
case PROP_SEC:
- g_value_set_string (value, setting->security);
+ g_value_set_string (value, nm_setting_wireless_get_security (setting));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -534,6 +683,8 @@
GObjectClass *object_class = G_OBJECT_CLASS (setting_class);
NMSettingClass *parent_class = NM_SETTING_CLASS (setting_class);
+ g_type_class_add_private (setting_class, sizeof (NMSettingWirelessPrivate));
+
/* virtual methods */
object_class->set_property = set_property;
object_class->get_property = get_property;
Modified: trunk/libnm-util/nm-setting-wireless.h
==============================================================================
--- trunk/libnm-util/nm-setting-wireless.h (original)
+++ trunk/libnm-util/nm-setting-wireless.h Tue Oct 28 19:26:00 2008
@@ -69,18 +69,6 @@
typedef struct {
NMSetting parent;
-
- GByteArray *ssid;
- char *mode;
- char *band;
- guint32 channel;
- GByteArray *bssid;
- guint32 rate;
- guint32 tx_power;
- GByteArray *mac_address;
- guint32 mtu;
- GSList *seen_bssids;
- char *security;
} NMSettingWireless;
typedef struct {
@@ -91,12 +79,30 @@
NMSetting *nm_setting_wireless_new (void);
-gboolean nm_setting_wireless_ap_security_compatible (NMSettingWireless *s_wireless,
- NMSettingWirelessSecurity *s_wireless_sec,
- guint32 ap_flags,
- guint32 ap_wpa,
- guint32 ap_rsn,
- guint32 ap_mode);
+const GByteArray *nm_setting_wireless_get_ssid (NMSettingWireless *setting);
+const char *nm_setting_wireless_get_mode (NMSettingWireless *setting);
+const char *nm_setting_wireless_get_band (NMSettingWireless *setting);
+guint32 nm_setting_wireless_get_channel (NMSettingWireless *setting);
+const GByteArray *nm_setting_wireless_get_bssid (NMSettingWireless *setting);
+guint32 nm_setting_wireless_get_rate (NMSettingWireless *setting);
+guint32 nm_setting_wireless_get_tx_power (NMSettingWireless *setting);
+const GByteArray *nm_setting_wireless_get_mac_address (NMSettingWireless *setting);
+guint32 nm_setting_wireless_get_mtu (NMSettingWireless *setting);
+const char *nm_setting_wireless_get_security (NMSettingWireless *setting);
+
+gboolean nm_setting_wireless_add_seen_bssid (NMSettingWireless *setting,
+ const char *bssid);
+
+guint32 nm_setting_wireless_get_num_seen_bssids (NMSettingWireless *setting);
+const char *nm_setting_wireless_get_seen_bssid (NMSettingWireless *setting,
+ guint32 i);
+
+gboolean nm_setting_wireless_ap_security_compatible (NMSettingWireless *s_wireless,
+ NMSettingWirelessSecurity *s_wireless_sec,
+ guint32 ap_flags,
+ guint32 ap_wpa,
+ guint32 ap_rsn,
+ guint32 ap_mode);
G_END_DECLS
Modified: trunk/src/NetworkManagerAP.c
==============================================================================
--- trunk/src/NetworkManagerAP.c (original)
+++ trunk/src/NetworkManagerAP.c Tue Oct 28 19:26:00 2008
@@ -545,32 +545,32 @@
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_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 @@
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 @@
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;
}
Modified: trunk/src/nm-device-wifi.c
==============================================================================
--- trunk/src/nm-device-wifi.c (original)
+++ trunk/src/nm-device-wifi.c Tue Oct 28 19:26:00 2008
@@ -986,6 +986,7 @@
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 @@
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 @@
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 @@
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 @@
* 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 @@
}
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 @@
}
/* 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 @@
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 @@
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;
Modified: trunk/src/nm-manager.c
==============================================================================
--- trunk/src/nm-manager.c (original)
+++ trunk/src/nm-manager.c Tue Oct 28 19:26:00 2008
@@ -1586,24 +1586,33 @@
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;
}
Modified: trunk/src/supplicant-manager/nm-supplicant-config.c
==============================================================================
--- trunk/src/supplicant-manager/nm-supplicant-config.c (original)
+++ trunk/src/supplicant-manager/nm-supplicant-config.c Tue Oct 28 19:26:00 2008
@@ -336,13 +336,16 @@
{
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 @@
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 @@
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)) {
Modified: trunk/system-settings/plugins/ifcfg-fedora/nm-ifcfg-connection.c
==============================================================================
--- trunk/system-settings/plugins/ifcfg-fedora/nm-ifcfg-connection.c (original)
+++ trunk/system-settings/plugins/ifcfg-fedora/nm-ifcfg-connection.c Tue Oct 28 19:26:00 2008
@@ -179,7 +179,7 @@
s_wireless = (NMSettingWireless *) nm_connection_get_setting (connection, NM_TYPE_SETTING_WIRELESS);
if (s_wireless) {
devices = nm_system_config_hal_manager_get_devices_of_type (hal_mgr, NM_DEVICE_TYPE_WIFI);
- udi = get_ether_device_udi (g_connection, s_wireless->mac_address, devices);
+ udi = get_ether_device_udi (g_connection, nm_setting_wireless_get_mac_address (s_wireless), devices);
}
break;
Modified: trunk/system-settings/plugins/ifcfg-fedora/reader.c
==============================================================================
--- trunk/system-settings/plugins/ifcfg-fedora/reader.c (original)
+++ trunk/system-settings/plugins/ifcfg-fedora/reader.c Tue Oct 28 19:26:00 2008
@@ -638,11 +638,15 @@
GError **error)
{
NMSettingWireless *s_wireless;
+ GByteArray *array;
char *value;
s_wireless = NM_SETTING_WIRELESS (nm_setting_wireless_new ());
- if (!read_mac_address (ifcfg, &s_wireless->mac_address, error)) {
+ if (read_mac_address (ifcfg, &array, error)) {
+ g_object_set (s_wireless, NM_SETTING_WIRELESS_MAC_ADDRESS, array, NULL);
+ g_byte_array_free (array, TRUE);
+ } else {
g_object_unref (s_wireless);
return NULL;
}
@@ -659,9 +663,11 @@
goto error;
}
- s_wireless->ssid = g_byte_array_sized_new (strlen (value));
- g_byte_array_append (s_wireless->ssid, (const guint8 *) value, len);
+ array = g_byte_array_sized_new (strlen (value));
+ g_byte_array_append (array, (const guint8 *) value, len);
g_free (value);
+ g_object_set (s_wireless, NM_SETTING_WIRELESS_SSID, array, NULL);
+ g_byte_array_free (array, TRUE);
} else {
/* Only fail on lack of SSID if device is managed */
if (!unmanaged) {
@@ -674,14 +680,15 @@
value = svGetValue (ifcfg, "MODE");
if (value) {
char *lcase;
+ const char *mode = NULL;
lcase = g_ascii_strdown (value, -1);
g_free (value);
if (!strcmp (lcase, "ad-hoc")) {
- s_wireless->mode = g_strdup ("adhoc");
+ mode = "adhoc";
} else if (!strcmp (lcase, "managed")) {
- s_wireless->mode = g_strdup ("infrastructure");
+ mode = "infrastructure";
} else {
g_set_error (error, ifcfg_plugin_error_quark (), 0,
"Invalid mode '%s' (not ad-hoc or managed)",
@@ -690,10 +697,13 @@
goto error;
}
g_free (lcase);
+
+ g_object_set (s_wireless, NM_SETTING_WIRELESS_MODE, mode, NULL);
}
if (security)
- s_wireless->security = g_strdup (NM_SETTING_WIRELESS_SECURITY_SETTING_NAME);
+ g_object_set (s_wireless, NM_SETTING_WIRELESS_SEC,
+ NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NULL);
// FIXME: channel/freq, other L2 parameters like RTS
}
@@ -715,7 +725,7 @@
NMConnection *connection = NULL;
NMSetting *con_setting = NULL;
NMSetting *wireless_setting = NULL;
- NMSettingWireless *s_wireless;
+ const GByteArray *ssid;
NMSetting *security_setting = NULL;
char *printable_ssid = NULL;
@@ -748,11 +758,10 @@
}
nm_connection_add_setting (connection, wireless_setting);
- s_wireless = (NMSettingWireless *) wireless_setting;
- if (s_wireless && s_wireless->ssid) {
- printable_ssid = nm_utils_ssid_to_utf8 ((const char *) s_wireless->ssid->data,
- (guint32) s_wireless->ssid->len);
- } else
+ ssid = nm_setting_wireless_get_ssid (NM_SETTING_WIRELESS (wireless_setting));
+ if (ssid)
+ printable_ssid = nm_utils_ssid_to_utf8 ((const char *) ssid->data, ssid->len);
+ else
printable_ssid = g_strdup_printf ("unmanaged");
con_setting = make_connection_setting (file, ifcfg,
Modified: trunk/system-settings/plugins/ifcfg-suse/parser.c
==============================================================================
--- trunk/system-settings/plugins/ifcfg-suse/parser.c (original)
+++ trunk/system-settings/plugins/ifcfg-suse/parser.c Tue Oct 28 19:26:00 2008
@@ -426,8 +426,10 @@
security->psk = g_strdup (value);
} else {
/* passphrase */
+ const GByteArray *ssid = nm_setting_wireless_get_mac_address (s_wireless);
unsigned char *buf = g_malloc0 (WPA_PMK_LEN * 2);
- pbkdf2_sha1 (value, (char *) s_wireless->ssid->data, s_wireless->ssid->len, 4096, buf, WPA_PMK_LEN);
+
+ pbkdf2_sha1 (value, (char *) ssid->data, ssid->len, 4096, buf, WPA_PMK_LEN);
security->psk = utils_bin2hexstr ((const char *) buf, WPA_PMK_LEN, WPA_PMK_LEN * 2);
g_free (buf);
}
@@ -558,8 +560,12 @@
gsize len = strlen (str);
if (len > 0 && len <= 32) {
- s_wireless->ssid = g_byte_array_sized_new (len);
- g_byte_array_append (s_wireless->ssid, (const guint8 *) str, len);
+ GByteArray *ssid;
+
+ ssid = g_byte_array_sized_new (len);
+ g_byte_array_append (ssid, (const guint8 *) str, len);
+ g_object_set (s_wireless, NM_SETTING_WIRELESS_SSID, ssid, NULL);
+ g_byte_array_free (ssid, TRUE);
} else
g_warning ("Ignoring invalid ESSID '%s', (size %zu not between 1 and 32 inclusive)", str, len);
@@ -568,10 +574,17 @@
str = svGetValue (ifcfg, "WIRLESS_MODE");
if (str) {
+ const char *mode;
+
if (!g_ascii_strcasecmp (str, "ad-hoc"))
- s_wireless->mode = g_strdup ("adhoc");
+ mode = "adhoc";
else if (!g_ascii_strcasecmp (str, "managed"))
- s_wireless->mode = g_strdup ("infrastructure");
+ mode = "infrastructure";
+ else
+ mode = NULL;
+
+ if (mode)
+ g_object_set (s_wireless, NM_SETTING_WIRELESS_MODE, mode, NULL);
g_free (str);
}
@@ -584,12 +597,12 @@
static char *
get_printable_ssid (NMSetting *setting)
{
- NMSettingWireless *s_wireless = NM_SETTING_WIRELESS (setting);
+ const GByteArray *ssid;
char *printable_ssid = NULL;
- if (s_wireless->ssid)
- printable_ssid = nm_utils_ssid_to_utf8 ((const char *) s_wireless->ssid->data,
- (guint32) s_wireless->ssid->len);
+ ssid = nm_setting_wireless_get_ssid (NM_SETTING_WIRELESS (setting));
+ if (ssid)
+ printable_ssid = nm_utils_ssid_to_utf8 ((const char *) ssid->data, ssid->len);
return printable_ssid;
}
Modified: trunk/system-settings/plugins/ifupdown/parser.c
==============================================================================
--- trunk/system-settings/plugins/ifupdown/parser.c (original)
+++ trunk/system-settings/plugins/ifupdown/parser.c Tue Oct 28 19:26:00 2008
@@ -161,10 +161,14 @@
const gchar* newkey = map_by_mapping(mapping, curr->key+wpa_l);
if(newkey && !strcmp("ssid", newkey)) {
+ GByteArray *ssid;
gint len = strlen(curr->data);
- wireless_setting->ssid = g_byte_array_sized_new (len);
- g_byte_array_append (wireless_setting->ssid, (const guint8 *) curr->data, len);
- PLUGIN_PRINT("SCPlugin-Ifupdown", "setting wpa ssid = %d", wireless_setting->ssid->len);
+
+ ssid = g_byte_array_sized_new (len);
+ g_byte_array_append (ssid, (const guint8 *) curr->data, len);
+ g_object_set (wireless_setting, NM_SETTING_WIRELESS_SSID, ssid, NULL);
+ g_byte_array_free (ssid, TRUE);
+ PLUGIN_PRINT("SCPlugin-Ifupdown", "setting wpa ssid = %d", len);
} else if(newkey) {
g_object_set(wireless_setting,
@@ -200,8 +204,11 @@
normalized = g_strdup (value);
} else {
/* passphrase */
+ const GByteArray *ssid;
unsigned char *buf = g_malloc0 (WPA_PMK_LEN * 2);
- pbkdf2_sha1 (value, (char *) s_wireless->ssid->data, s_wireless->ssid->len, 4096, buf, WPA_PMK_LEN);
+
+ ssid = nm_setting_wireless_get_ssid (s_wireless);
+ pbkdf2_sha1 (value, (char *) ssid->data, ssid->len, 4096, buf, WPA_PMK_LEN);
normalized = utils_bin2hexstr ((const char *) buf, WPA_PMK_LEN, WPA_PMK_LEN * 2);
g_free (buf);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]