2007-10-09 Tambet Ingo <tambet@gmail.com>
* src/NetworkManagerUtils.c (nm_utils_is_empty_ssid): (nm_utils_escape_ssid): (nm_utils_same_ssid): Remove. These functions are copied and pasted in a lot of places, so they belong to libnm-utils instead. Now with 100% less compiler warnings: * libnm-util/nm-utils.c (nm_dbus_escape_object_path): Remove, * unused. (nm_dbus_unescape_object_path): Ditto. (nm_utils_ssid_to_utf8): Ditto. (nm_utils_is_empty_ssid): Move here from src/NetworkManagerUtils.c (nm_utils_escape_ssid): Ditto. (nm_utils_same_ssid): Ditto. * src/nm-manager.c: Include 'netinet/ether.h' for ether_aton_r. (add_one_connection_element): Remove an unused variable. (impl_manager_get_active_connections): Ditto. * src/NetworkManagerPolicy.c (get_device_connection): Remove an * unused variable. * src/nm-dbus-manager.c (nm_dbus_manager_start_service): Remove * a leftover from the previous commit. * src/nm-device-802-11-wireless.c (set_current_ap): Remove * unused variable. (real_act_stage1_prepare): Ditto. (activation_success_handler): Ditto. (get_property): Ditto. * src/nm-device-802-3-ethernet.c (real_get_best_connection): * Remove unused variable. * src/ppp-manager/nm-pppd-plugin.c (nm_ip_up): Remove the check * for 'ifname', it's always set. * src/supplicant-manager/nm-supplicant-config.c (nm_supplicant_config_add_setting_wireless): Cast the GByteArray's 'guint8 *' to expected "char *". (nm_supplicant_config_add_setting_wireless): Ditto. (nm_supplicant_config_remove_option): Remove, not used. * libnm-glib/libnm-glib-test.c (dump_access_point): Frequency is * a guint32, not double. (test_wireless_enabled): Ifdef out unused function. (device_deactivate): Ditto. (device_state_changed): Ditto. (nm_utils_is_empty_ssid): Remove, it's now in libnm-utils. (nm_utils_escape_ssid): Ditto. * test/nm-tool.c (nm_utils_escape_ssid): Remove, it's now in * libnm-utils. (nm_utils_is_empty_ssid): Ditto. * libnm-glib/nm-client.c * (nm_client_free_active_connection_element): Remove unused variable. * libnm-util/nm-setting.c (setting_wireless_destroy): Remove * unused variable. (setting_vpn_properties_update_secrets): Ditto. (int_to_gvalue): Ifdef out for now, not used. (byte_to_gvalue): Ditto. * libnm-util/dbus-dict-helpers.c * (_nmu_dbus_add_dict_entry_string_array): Unused, remove. git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2960 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
66
ChangeLog
66
ChangeLog
@@ -1,3 +1,69 @@
|
|||||||
|
2007-10-09 Tambet Ingo <tambet@gmail.com>
|
||||||
|
|
||||||
|
* src/NetworkManagerUtils.c
|
||||||
|
(nm_utils_is_empty_ssid):
|
||||||
|
(nm_utils_escape_ssid):
|
||||||
|
(nm_utils_same_ssid): Remove. These functions are copied and pasted in a
|
||||||
|
lot of places, so they belong to libnm-utils instead.
|
||||||
|
|
||||||
|
Now with 100% less compiler warnings:
|
||||||
|
|
||||||
|
* libnm-util/nm-utils.c (nm_dbus_escape_object_path): Remove, unused.
|
||||||
|
(nm_dbus_unescape_object_path): Ditto.
|
||||||
|
(nm_utils_ssid_to_utf8): Ditto.
|
||||||
|
(nm_utils_is_empty_ssid): Move here from src/NetworkManagerUtils.c
|
||||||
|
(nm_utils_escape_ssid): Ditto.
|
||||||
|
(nm_utils_same_ssid): Ditto.
|
||||||
|
|
||||||
|
* src/nm-manager.c: Include 'netinet/ether.h' for ether_aton_r.
|
||||||
|
(add_one_connection_element): Remove an unused variable.
|
||||||
|
(impl_manager_get_active_connections): Ditto.
|
||||||
|
|
||||||
|
* src/NetworkManagerPolicy.c (get_device_connection): Remove an unused
|
||||||
|
variable.
|
||||||
|
|
||||||
|
* src/nm-dbus-manager.c (nm_dbus_manager_start_service): Remove a leftover
|
||||||
|
from the previous commit.
|
||||||
|
|
||||||
|
* src/nm-device-802-11-wireless.c (set_current_ap): Remove unused variable.
|
||||||
|
(real_act_stage1_prepare): Ditto.
|
||||||
|
(activation_success_handler): Ditto.
|
||||||
|
(get_property): Ditto.
|
||||||
|
|
||||||
|
* src/nm-device-802-3-ethernet.c (real_get_best_connection): Remove unused
|
||||||
|
variable.
|
||||||
|
|
||||||
|
* src/ppp-manager/nm-pppd-plugin.c (nm_ip_up): Remove the check for 'ifname',
|
||||||
|
it's always set.
|
||||||
|
|
||||||
|
* src/supplicant-manager/nm-supplicant-config.c
|
||||||
|
(nm_supplicant_config_add_setting_wireless): Cast the GByteArray's 'guint8 *'
|
||||||
|
to expected "char *".
|
||||||
|
(nm_supplicant_config_add_setting_wireless): Ditto.
|
||||||
|
(nm_supplicant_config_remove_option): Remove, not used.
|
||||||
|
|
||||||
|
* libnm-glib/libnm-glib-test.c (dump_access_point): Frequency is a guint32,
|
||||||
|
not double.
|
||||||
|
(test_wireless_enabled): Ifdef out unused function.
|
||||||
|
(device_deactivate): Ditto.
|
||||||
|
(device_state_changed): Ditto.
|
||||||
|
(nm_utils_is_empty_ssid): Remove, it's now in libnm-utils.
|
||||||
|
(nm_utils_escape_ssid): Ditto.
|
||||||
|
|
||||||
|
* test/nm-tool.c (nm_utils_escape_ssid): Remove, it's now in libnm-utils.
|
||||||
|
(nm_utils_is_empty_ssid): Ditto.
|
||||||
|
|
||||||
|
* libnm-glib/nm-client.c (nm_client_free_active_connection_element): Remove
|
||||||
|
unused variable.
|
||||||
|
|
||||||
|
* libnm-util/nm-setting.c (setting_wireless_destroy): Remove unused variable.
|
||||||
|
(setting_vpn_properties_update_secrets): Ditto.
|
||||||
|
(int_to_gvalue): Ifdef out for now, not used.
|
||||||
|
(byte_to_gvalue): Ditto.
|
||||||
|
|
||||||
|
* libnm-util/dbus-dict-helpers.c (_nmu_dbus_add_dict_entry_string_array):
|
||||||
|
Unused, remove.
|
||||||
|
|
||||||
2007-10-08 Tambet Ingo <tambet@gmail.com>
|
2007-10-08 Tambet Ingo <tambet@gmail.com>
|
||||||
|
|
||||||
* src/NetworkManager.c (main): When dbus manager doesn't want to start, complain
|
* src/NetworkManager.c (main): When dbus manager doesn't want to start, complain
|
||||||
|
@@ -10,50 +10,9 @@
|
|||||||
#include "nm-device.h"
|
#include "nm-device.h"
|
||||||
#include "nm-device-802-3-ethernet.h"
|
#include "nm-device-802-3-ethernet.h"
|
||||||
#include "nm-device-802-11-wireless.h"
|
#include "nm-device-802-11-wireless.h"
|
||||||
|
#include "nm-utils.h"
|
||||||
|
|
||||||
|
#if 0
|
||||||
/* Shamelessly ripped from the Linux kernel ieee80211 stack */
|
|
||||||
static gboolean
|
|
||||||
nm_utils_is_empty_ssid (const char * ssid, int len)
|
|
||||||
{
|
|
||||||
/* Single white space is for Linksys APs */
|
|
||||||
if (len == 1 && ssid[0] == ' ')
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
/* Otherwise, if the entire ssid is 0, we assume it is hidden */
|
|
||||||
while (len--) {
|
|
||||||
if (ssid[len] != '\0')
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char *
|
|
||||||
nm_utils_escape_ssid (const char * ssid, guint32 len)
|
|
||||||
{
|
|
||||||
static char escaped[IW_ESSID_MAX_SIZE * 2 + 1];
|
|
||||||
const char *s = ssid;
|
|
||||||
char *d = escaped;
|
|
||||||
|
|
||||||
if (nm_utils_is_empty_ssid (ssid, len)) {
|
|
||||||
memcpy (escaped, "<hidden>", sizeof ("<hidden>"));
|
|
||||||
return escaped;
|
|
||||||
}
|
|
||||||
|
|
||||||
len = MIN (len, (guint32) IW_ESSID_MAX_SIZE);
|
|
||||||
while (len--) {
|
|
||||||
if (*s == '\0') {
|
|
||||||
*d++ = '\\';
|
|
||||||
*d++ = '0';
|
|
||||||
s++;
|
|
||||||
} else {
|
|
||||||
*d++ = *s++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*d = '\0';
|
|
||||||
return escaped;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
test_wireless_enabled (NMClient *client)
|
test_wireless_enabled (NMClient *client)
|
||||||
{
|
{
|
||||||
@@ -71,6 +30,7 @@ test_wireless_enabled (NMClient *client)
|
|||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
test_get_state (NMClient *client)
|
test_get_state (NMClient *client)
|
||||||
@@ -178,7 +138,7 @@ dump_access_point (NMAccessPoint *ap)
|
|||||||
g_print ("\tFlags: 0x%X\n", nm_access_point_get_flags (ap));
|
g_print ("\tFlags: 0x%X\n", nm_access_point_get_flags (ap));
|
||||||
g_print ("\tWPA Flags: 0x%X\n", nm_access_point_get_wpa_flags (ap));
|
g_print ("\tWPA Flags: 0x%X\n", nm_access_point_get_wpa_flags (ap));
|
||||||
g_print ("\tRSN Flags: 0x%X\n", nm_access_point_get_rsn_flags (ap));
|
g_print ("\tRSN Flags: 0x%X\n", nm_access_point_get_rsn_flags (ap));
|
||||||
g_print ("\tFrequency: %f\n", nm_access_point_get_frequency (ap));
|
g_print ("\tFrequency: %u\n", nm_access_point_get_frequency (ap));
|
||||||
|
|
||||||
g_print ("\tMode: %d\n", nm_access_point_get_mode (ap));
|
g_print ("\tMode: %d\n", nm_access_point_get_mode (ap));
|
||||||
g_print ("\tRate: %d\n", nm_access_point_get_rate (ap));
|
g_print ("\tRate: %d\n", nm_access_point_get_rate (ap));
|
||||||
@@ -291,7 +251,7 @@ device_removed_cb (NMClient *client, NMDevice *device, gpointer user_data)
|
|||||||
dump_device (device);
|
dump_device (device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static gboolean
|
static gboolean
|
||||||
device_deactivate (gpointer user_data)
|
device_deactivate (gpointer user_data)
|
||||||
{
|
{
|
||||||
@@ -318,6 +278,7 @@ device_state_changed (NMDevice *device, NMDeviceState state, gpointer user_data)
|
|||||||
device);
|
device);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
manager_running (NMClient *client, gboolean running, gpointer user_data)
|
manager_running (NMClient *client, gboolean running, gpointer user_data)
|
||||||
|
@@ -530,8 +530,6 @@ nm_client_get_active_connections (NMClient *client)
|
|||||||
void
|
void
|
||||||
nm_client_free_active_connection_element (NMClientActiveConnection *elt)
|
nm_client_free_active_connection_element (NMClientActiveConnection *elt)
|
||||||
{
|
{
|
||||||
GSList *iter;
|
|
||||||
|
|
||||||
g_return_if_fail (elt != NULL);
|
g_return_if_fail (elt != NULL);
|
||||||
|
|
||||||
g_free (elt->service_name);
|
g_free (elt->service_name);
|
||||||
|
@@ -279,52 +279,6 @@ _nmu_dbus_add_dict_entry_uint32_array (DBusMessageIter *iter_dict,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static dbus_bool_t
|
|
||||||
_nmu_dbus_add_dict_entry_string_array (DBusMessageIter *iter_dict,
|
|
||||||
const char *key,
|
|
||||||
const char **items,
|
|
||||||
const dbus_uint32_t num_items)
|
|
||||||
{
|
|
||||||
DBusMessageIter iter_dict_entry, iter_dict_val, iter_array;
|
|
||||||
dbus_uint32_t i;
|
|
||||||
|
|
||||||
if (!_nmu_dbus_add_dict_entry_start (iter_dict,
|
|
||||||
&iter_dict_entry,
|
|
||||||
key,
|
|
||||||
DBUS_TYPE_ARRAY))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
if (!dbus_message_iter_open_container (&iter_dict_entry,
|
|
||||||
DBUS_TYPE_VARIANT,
|
|
||||||
DBUS_TYPE_ARRAY_AS_STRING
|
|
||||||
DBUS_TYPE_STRING_AS_STRING,
|
|
||||||
&iter_dict_val))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
if (!dbus_message_iter_open_container (&iter_dict_val,
|
|
||||||
DBUS_TYPE_ARRAY,
|
|
||||||
DBUS_TYPE_BYTE_AS_STRING,
|
|
||||||
&iter_array))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
for (i = 0; i < num_items; i++) {
|
|
||||||
if (!dbus_message_iter_append_basic (&iter_array,
|
|
||||||
DBUS_TYPE_STRING,
|
|
||||||
&(items[i])))
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!dbus_message_iter_close_container (&iter_dict_val, &iter_array))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
if (!_nmu_dbus_add_dict_entry_end (iter_dict,
|
|
||||||
&iter_dict_entry,
|
|
||||||
&iter_dict_val))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a string entry to the dict.
|
* Add a string entry to the dict.
|
||||||
*
|
*
|
||||||
|
@@ -172,6 +172,7 @@ boolean_to_gvalue (gboolean b)
|
|||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static GValue *
|
static GValue *
|
||||||
int_to_gvalue (int i)
|
int_to_gvalue (int i)
|
||||||
{
|
{
|
||||||
@@ -183,6 +184,7 @@ int_to_gvalue (int i)
|
|||||||
|
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static GValue *
|
static GValue *
|
||||||
uint_to_gvalue (guint32 i)
|
uint_to_gvalue (guint32 i)
|
||||||
@@ -208,6 +210,7 @@ uint64_to_gvalue (guint64 i)
|
|||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static GValue *
|
static GValue *
|
||||||
byte_to_gvalue (guchar c)
|
byte_to_gvalue (guchar c)
|
||||||
{
|
{
|
||||||
@@ -219,6 +222,7 @@ byte_to_gvalue (guchar c)
|
|||||||
|
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static GValue *
|
static GValue *
|
||||||
byte_array_to_gvalue (GByteArray *array)
|
byte_array_to_gvalue (GByteArray *array)
|
||||||
@@ -763,7 +767,6 @@ static void
|
|||||||
setting_wireless_destroy (NMSetting *setting)
|
setting_wireless_destroy (NMSetting *setting)
|
||||||
{
|
{
|
||||||
NMSettingWireless *self = (NMSettingWireless *) setting;
|
NMSettingWireless *self = (NMSettingWireless *) setting;
|
||||||
GSList *iter;
|
|
||||||
|
|
||||||
g_free (self->mode);
|
g_free (self->mode);
|
||||||
g_free (self->band);
|
g_free (self->band);
|
||||||
@@ -1380,7 +1383,6 @@ setting_vpn_properties_update_secrets (NMSetting *setting,
|
|||||||
GHashTable *secrets)
|
GHashTable *secrets)
|
||||||
{
|
{
|
||||||
NMSettingVPNProperties *self = (NMSettingVPNProperties *) setting;
|
NMSettingVPNProperties *self = (NMSettingVPNProperties *) setting;
|
||||||
SettingMember *m;
|
|
||||||
|
|
||||||
g_return_val_if_fail (self != NULL, FALSE);
|
g_return_val_if_fail (self != NULL, FALSE);
|
||||||
g_return_val_if_fail (secrets != NULL, FALSE);
|
g_return_val_if_fail (secrets != NULL, FALSE);
|
||||||
|
@@ -31,324 +31,73 @@
|
|||||||
#include <dbus/dbus.h>
|
#include <dbus/dbus.h>
|
||||||
#include "nm-utils.h"
|
#include "nm-utils.h"
|
||||||
|
|
||||||
gchar *nm_dbus_escape_object_path (const gchar *utf8_string)
|
/* Shamelessly ripped from the Linux kernel ieee80211 stack */
|
||||||
|
gboolean
|
||||||
|
nm_utils_is_empty_ssid (const char * ssid, int len)
|
||||||
{
|
{
|
||||||
const gchar *p;
|
/* Single white space is for Linksys APs */
|
||||||
gchar *object_path;
|
if (len == 1 && ssid[0] == ' ')
|
||||||
GString *string;
|
return TRUE;
|
||||||
|
|
||||||
g_return_val_if_fail (utf8_string != NULL, NULL);
|
/* Otherwise, if the entire ssid is 0, we assume it is hidden */
|
||||||
g_return_val_if_fail (g_utf8_validate (utf8_string, -1, NULL), NULL);
|
while (len--) {
|
||||||
|
if (ssid[len] != '\0')
|
||||||
string = g_string_sized_new ((strlen (utf8_string) + 1) * 6);
|
return FALSE;
|
||||||
|
|
||||||
for (p = utf8_string; *p != '\0'; p = g_utf8_next_char (p))
|
|
||||||
{
|
|
||||||
gunichar character;
|
|
||||||
|
|
||||||
character = g_utf8_get_char (p);
|
|
||||||
|
|
||||||
if (((character >= ((gunichar) 'a')) &&
|
|
||||||
(character <= ((gunichar) 'z'))) ||
|
|
||||||
((character >= ((gunichar) 'A')) &&
|
|
||||||
(character <= ((gunichar) 'Z'))) ||
|
|
||||||
((character >= ((gunichar) '0')) &&
|
|
||||||
(character <= ((gunichar) '9'))) ||
|
|
||||||
(character == ((gunichar) '/')))
|
|
||||||
{
|
|
||||||
g_string_append_c (string, (gchar) character);
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
return TRUE;
|
||||||
g_string_append_printf (string, "_%x_", character);
|
|
||||||
}
|
|
||||||
|
|
||||||
object_path = string->str;
|
|
||||||
|
|
||||||
g_string_free (string, FALSE);
|
|
||||||
|
|
||||||
return object_path;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gchar *nm_dbus_unescape_object_path (const gchar *object_path)
|
const char *
|
||||||
|
nm_utils_escape_ssid (const guint8 * ssid, guint32 len)
|
||||||
{
|
{
|
||||||
const gchar *p;
|
static char escaped[IW_ESSID_MAX_SIZE * 2 + 1];
|
||||||
gchar *utf8_string;
|
const guint8 *s = ssid;
|
||||||
GString *string;
|
char *d = escaped;
|
||||||
|
|
||||||
g_return_val_if_fail (object_path != NULL, NULL);
|
if (nm_utils_is_empty_ssid ((const char *) ssid, len)) {
|
||||||
|
memcpy (escaped, "<hidden>", sizeof ("<hidden>"));
|
||||||
string = g_string_sized_new (strlen (object_path) + 1);
|
return escaped;
|
||||||
|
|
||||||
for (p = object_path; *p != '\0'; p++)
|
|
||||||
{
|
|
||||||
const gchar *q;
|
|
||||||
gchar *hex_digits, *end, utf8_character[6] = { '\0' };
|
|
||||||
gint utf8_character_size;
|
|
||||||
gunichar character;
|
|
||||||
gulong hex_value;
|
|
||||||
|
|
||||||
if (*p != '_')
|
|
||||||
{
|
|
||||||
g_string_append_c (string, *p);
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
q = strchr (p + 1, '_');
|
len = MIN (len, (guint32) IW_ESSID_MAX_SIZE);
|
||||||
|
while (len--) {
|
||||||
if ((q == NULL) || (q == p + 1))
|
if (*s == '\0') {
|
||||||
{
|
*d++ = '\\';
|
||||||
g_string_free (string, TRUE);
|
*d++ = '0';
|
||||||
return NULL;
|
s++;
|
||||||
|
} else {
|
||||||
|
*d++ = *s++;
|
||||||
}
|
}
|
||||||
|
|
||||||
hex_digits = g_strndup (p + 1, (q - 1) - p);
|
|
||||||
|
|
||||||
hex_value = strtoul (hex_digits, &end, 16);
|
|
||||||
|
|
||||||
character = (gunichar) hex_value;
|
|
||||||
|
|
||||||
if (((hex_value == G_MAXLONG) && (errno == ERANGE)) ||
|
|
||||||
(hex_value > G_MAXUINT32) ||
|
|
||||||
(*end != '\0') ||
|
|
||||||
(!g_unichar_validate (character)))
|
|
||||||
{
|
|
||||||
g_free (hex_digits);
|
|
||||||
g_string_free (string, TRUE);
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
*d = '\0';
|
||||||
utf8_character_size =
|
return escaped;
|
||||||
g_unichar_to_utf8 (character, utf8_character);
|
|
||||||
|
|
||||||
g_assert (utf8_character_size > 0);
|
|
||||||
|
|
||||||
g_string_append_len (string, utf8_character,
|
|
||||||
utf8_character_size);
|
|
||||||
|
|
||||||
p = q;
|
|
||||||
}
|
|
||||||
|
|
||||||
utf8_string = string->str;
|
|
||||||
|
|
||||||
g_string_free (string, FALSE);
|
|
||||||
|
|
||||||
return utf8_string;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct EncodingTriplet
|
gboolean
|
||||||
|
nm_utils_same_ssid (const GByteArray * ssid1,
|
||||||
|
const GByteArray * ssid2,
|
||||||
|
gboolean ignore_trailing_null)
|
||||||
{
|
{
|
||||||
const char *encoding1;
|
guint32 ssid1_len, ssid2_len;
|
||||||
const char *encoding2;
|
|
||||||
const char *encoding3;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct IsoLangToEncodings
|
if (ssid1 == ssid2)
|
||||||
{
|
return TRUE;
|
||||||
const char * lang;
|
if ((ssid1 && !ssid2) || (!ssid1 && ssid2))
|
||||||
struct EncodingTriplet encodings;
|
return FALSE;
|
||||||
};
|
|
||||||
|
|
||||||
/* 5-letter language codes */
|
ssid1_len = ssid1->len;
|
||||||
static const struct IsoLangToEncodings isoLangEntries5[] =
|
ssid2_len = ssid2->len;
|
||||||
{
|
if (ssid1_len && ssid2_len && ignore_trailing_null) {
|
||||||
/* Simplified Chinese */
|
if (ssid1->data[ssid1_len - 1] == '\0')
|
||||||
{ "zh_cn", {"euc-cn", "gb2312", "gb18030"} }, /* PRC */
|
ssid1_len--;
|
||||||
{ "zh_sg", {"euc-cn", "gb2312", "gb18030"} }, /* Singapore */
|
if (ssid2->data[ssid2_len - 1] == '\0')
|
||||||
|
ssid2_len--;
|
||||||
/* Traditional Chinese */
|
|
||||||
{ "zh_tw", {"big5", "euc-tw", NULL} }, /* Taiwan */
|
|
||||||
{ "zh_hk", {"big5", "euc-tw", "big5-hkcs"} },/* Hong Kong */
|
|
||||||
{ "zh_mo", {"big5", "euc-tw", NULL} }, /* Macau */
|
|
||||||
|
|
||||||
/* Table end */
|
|
||||||
{ NULL, {NULL, NULL, NULL} }
|
|
||||||
};
|
|
||||||
|
|
||||||
/* 2-letter language codes; we don't care about the other 3 in this table */
|
|
||||||
static const struct IsoLangToEncodings isoLangEntries2[] =
|
|
||||||
{
|
|
||||||
/* Japanese */
|
|
||||||
{ "ja", {"euc-jp", "shift_jis", "iso-2022-jp"} },
|
|
||||||
|
|
||||||
/* Korean */
|
|
||||||
{ "ko", {"euc-kr", "iso-2022-kr", "johab"} },
|
|
||||||
|
|
||||||
/* Thai */
|
|
||||||
{ "th", {"iso-8859-11","windows-874", NULL} },
|
|
||||||
|
|
||||||
/* Central European */
|
|
||||||
{ "hu", {"iso-8859-2", "windows-1250", NULL} }, /* Hungarian */
|
|
||||||
{ "cs", {"iso-8859-2", "windows-1250", NULL} }, /* Czech */
|
|
||||||
{ "hr", {"iso-8859-2", "windows-1250", NULL} }, /* Croatian */
|
|
||||||
{ "pl", {"iso-8859-2", "windows-1250", NULL} }, /* Polish */
|
|
||||||
{ "ro", {"iso-8859-2", "windows-1250", NULL} }, /* Romanian */
|
|
||||||
{ "sk", {"iso-8859-2", "windows-1250", NULL} }, /* Slovakian */
|
|
||||||
{ "sl", {"iso-8859-2", "windows-1250", NULL} }, /* Slovenian */
|
|
||||||
{ "sh", {"iso-8859-2", "windows-1250", NULL} }, /* Serbo-Croatian */
|
|
||||||
|
|
||||||
/* Cyrillic */
|
|
||||||
{ "ru", {"koi8-r", "windows-1251", "iso-8859-5"} }, /* Russian */
|
|
||||||
{ "be", {"koi8-r", "windows-1251", "iso-8859-5"} }, /* Belorussian */
|
|
||||||
{ "bg", {"windows-1251","koi8-r", "iso-8859-5"} }, /* Bulgarian */
|
|
||||||
{ "mk", {"koi8-r", "windows-1251", "iso-8859-5"} }, /* Macedonian */
|
|
||||||
{ "sr", {"koi8-r", "windows-1251", "iso-8859-5"} }, /* Serbian */
|
|
||||||
{ "uk", {"koi8-u", "koi8-r", "windows-1251"} }, /* Ukranian */
|
|
||||||
|
|
||||||
/* Arabic */
|
|
||||||
{ "ar", {"iso-8859-6", "windows-1256", NULL} },
|
|
||||||
|
|
||||||
/* Balitc */
|
|
||||||
{ "et", {"iso-8859-4", "windows-1257", NULL} }, /* Estonian */
|
|
||||||
{ "lt", {"iso-8859-4", "windows-1257", NULL} }, /* Lithuanian */
|
|
||||||
{ "lv", {"iso-8859-4", "windows-1257", NULL} }, /* Latvian */
|
|
||||||
|
|
||||||
/* Greek */
|
|
||||||
{ "el", {"iso-8859-7", "windows-1253", NULL} },
|
|
||||||
|
|
||||||
/* Hebrew */
|
|
||||||
{ "he", {"iso-8859-8", "windows-1255", NULL} },
|
|
||||||
{ "iw", {"iso-8859-8", "windows-1255", NULL} },
|
|
||||||
|
|
||||||
/* Turkish */
|
|
||||||
{ "tr", {"iso-8859-9", "windows-1254", NULL} },
|
|
||||||
|
|
||||||
/* Table end */
|
|
||||||
{ NULL, {NULL, NULL, NULL} }
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static GHashTable * langToEncodings5 = NULL;
|
|
||||||
static GHashTable * langToEncodings2 = NULL;
|
|
||||||
|
|
||||||
static void
|
|
||||||
init_lang_to_encodings_hash (void)
|
|
||||||
{
|
|
||||||
static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
|
|
||||||
|
|
||||||
g_static_mutex_lock (&mutex);
|
|
||||||
if (G_UNLIKELY (!langToEncodings5 || !langToEncodings2))
|
|
||||||
{
|
|
||||||
const struct IsoLangToEncodings * enc = &isoLangEntries5[0];
|
|
||||||
|
|
||||||
/* Five-letter codes */
|
|
||||||
langToEncodings5 = g_hash_table_new (g_str_hash, g_str_equal);
|
|
||||||
while (enc->lang)
|
|
||||||
{
|
|
||||||
g_hash_table_insert (langToEncodings5, (gpointer) enc->lang,
|
|
||||||
(gpointer) &enc->encodings);
|
|
||||||
enc++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Two-letter codes */
|
if (ssid1_len != ssid2_len)
|
||||||
enc = &isoLangEntries2[0];
|
return FALSE;
|
||||||
langToEncodings2 = g_hash_table_new (g_str_hash, g_str_equal);
|
|
||||||
while (enc->lang)
|
|
||||||
{
|
|
||||||
g_hash_table_insert (langToEncodings2, (gpointer) enc->lang,
|
|
||||||
(gpointer) &enc->encodings);
|
|
||||||
enc++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
g_static_mutex_unlock (&mutex);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
return memcmp (ssid1->data, ssid2->data, ssid1_len) == 0 ? TRUE : FALSE;
|
||||||
static gboolean
|
|
||||||
get_encodings_for_lang (const char *lang,
|
|
||||||
char **encoding1,
|
|
||||||
char **encoding2,
|
|
||||||
char **encoding3)
|
|
||||||
{
|
|
||||||
struct EncodingTriplet * encodings;
|
|
||||||
gboolean success = FALSE;
|
|
||||||
char * tmp_lang;
|
|
||||||
|
|
||||||
g_return_val_if_fail (lang != NULL, FALSE);
|
|
||||||
g_return_val_if_fail (encoding1 != NULL, FALSE);
|
|
||||||
g_return_val_if_fail (encoding2 != NULL, FALSE);
|
|
||||||
g_return_val_if_fail (encoding3 != NULL, FALSE);
|
|
||||||
|
|
||||||
*encoding1 = "iso-8859-1";
|
|
||||||
*encoding2 = "windows-1251";
|
|
||||||
*encoding3 = NULL;
|
|
||||||
|
|
||||||
init_lang_to_encodings_hash ();
|
|
||||||
|
|
||||||
tmp_lang = g_strdup (lang);
|
|
||||||
if ((encodings = g_hash_table_lookup (langToEncodings5, tmp_lang)))
|
|
||||||
{
|
|
||||||
*encoding1 = (char *) encodings->encoding1;
|
|
||||||
*encoding2 = (char *) encodings->encoding2;
|
|
||||||
*encoding3 = (char *) encodings->encoding3;
|
|
||||||
success = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Truncate tmp_lang to length of 2 */
|
|
||||||
if (strlen (tmp_lang) > 2)
|
|
||||||
tmp_lang[2] = '\0';
|
|
||||||
if (!success && (encodings = g_hash_table_lookup (langToEncodings2, tmp_lang)))
|
|
||||||
{
|
|
||||||
*encoding1 = (char *) encodings->encoding1;
|
|
||||||
*encoding2 = (char *) encodings->encoding2;
|
|
||||||
*encoding3 = (char *) encodings->encoding3;
|
|
||||||
success = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_free (tmp_lang);
|
|
||||||
return success;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
char *
|
|
||||||
nm_utils_ssid_to_utf8 (const char *ssid, guint32 len)
|
|
||||||
{
|
|
||||||
char * new_ssid = NULL;
|
|
||||||
char buf[IW_ESSID_MAX_SIZE + 1];
|
|
||||||
guint32 buf_len = MIN (sizeof (buf) - 1, len);
|
|
||||||
char * lang;
|
|
||||||
char *e1 = NULL, *e2 = NULL, *e3 = NULL;
|
|
||||||
|
|
||||||
g_return_val_if_fail (ssid != NULL, NULL);
|
|
||||||
|
|
||||||
memset (buf, 0, sizeof (buf));
|
|
||||||
memcpy (buf, ssid, buf_len);
|
|
||||||
|
|
||||||
if (g_utf8_validate (buf, buf_len, NULL)) {
|
|
||||||
new_ssid = g_strdup (buf);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Even if the local encoding is UTF-8, LANG may give
|
|
||||||
* us a clue as to what encoding SSIDs are more likely to be in.
|
|
||||||
*/
|
|
||||||
g_get_charset ((const char **)(&e1));
|
|
||||||
if ((lang = getenv ("LANG"))) {
|
|
||||||
char * dot;
|
|
||||||
|
|
||||||
lang = g_ascii_strdown (lang, -1);
|
|
||||||
if ((dot = strchr (lang, '.')))
|
|
||||||
*dot = '\0';
|
|
||||||
|
|
||||||
get_encodings_for_lang (lang, &e1, &e2, &e3);
|
|
||||||
g_free (lang);
|
|
||||||
}
|
|
||||||
|
|
||||||
new_ssid = g_convert (buf, buf_len, "UTF-8", e1, NULL, NULL, NULL);
|
|
||||||
if (!new_ssid && e2) {
|
|
||||||
new_ssid = g_convert (buf, buf_len, "UTF-8", e2, NULL, NULL, NULL);
|
|
||||||
}
|
|
||||||
if (!new_ssid && e3) {
|
|
||||||
new_ssid = g_convert (buf, buf_len, "UTF-8", e3, NULL, NULL, NULL);
|
|
||||||
}
|
|
||||||
if (!new_ssid) {
|
|
||||||
new_ssid = g_convert_with_fallback (buf, buf_len, "UTF-8", e1,
|
|
||||||
"?", NULL, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
out:
|
|
||||||
return new_ssid;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */
|
||||||
/* NetworkManager -- Network link manager
|
/* NetworkManager -- Network link manager
|
||||||
*
|
*
|
||||||
* Ray Strode <rstrode@redhat.com>
|
* Ray Strode <rstrode@redhat.com>
|
||||||
@@ -126,10 +127,12 @@ G_STMT_START \
|
|||||||
G_BREAKPOINT (); \
|
G_BREAKPOINT (); \
|
||||||
} G_STMT_END
|
} G_STMT_END
|
||||||
|
|
||||||
gchar *nm_dbus_escape_object_path (const gchar *utf8_string);
|
/* SSID helpers */
|
||||||
gchar *nm_dbus_unescape_object_path (const gchar *object_path);
|
gboolean nm_utils_is_empty_ssid (const char * ssid, int len);
|
||||||
|
const char *nm_utils_escape_ssid (const guint8 *ssid, guint32 len);
|
||||||
char *nm_utils_ssid_to_utf8 (const char *ssid, guint32 len);
|
gboolean nm_utils_same_ssid (const GByteArray * ssid1,
|
||||||
|
const GByteArray * ssid2,
|
||||||
|
gboolean ignore_trailing_null);
|
||||||
|
|
||||||
GHashTable *nm_utils_gvalue_hash_dup (GHashTable *hash);
|
GHashTable *nm_utils_gvalue_hash_dup (GHashTable *hash);
|
||||||
char *nm_utils_garray_to_string (GArray *array);
|
char *nm_utils_garray_to_string (GArray *array);
|
||||||
|
@@ -407,7 +407,6 @@ static NMConnection *
|
|||||||
get_device_connection (NMDevice *device)
|
get_device_connection (NMDevice *device)
|
||||||
{
|
{
|
||||||
NMActRequest *req;
|
NMActRequest *req;
|
||||||
NMConnection *connection;
|
|
||||||
|
|
||||||
req = nm_device_get_act_request (device);
|
req = nm_device_get_act_request (device);
|
||||||
if (!req)
|
if (!req)
|
||||||
|
@@ -576,75 +576,6 @@ int nm_utils_ip4_netmask_to_prefix (guint32 ip4_netmask)
|
|||||||
return (32 - (i-1));
|
return (32 - (i-1));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Shamelessly ripped from the Linux kernel ieee80211 stack */
|
|
||||||
gboolean
|
|
||||||
nm_utils_is_empty_ssid (const char * ssid, int len)
|
|
||||||
{
|
|
||||||
/* Single white space is for Linksys APs */
|
|
||||||
if (len == 1 && ssid[0] == ' ')
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
/* Otherwise, if the entire ssid is 0, we assume it is hidden */
|
|
||||||
while (len--) {
|
|
||||||
if (ssid[len] != '\0')
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *
|
|
||||||
nm_utils_escape_ssid (const guint8 * ssid, guint32 len)
|
|
||||||
{
|
|
||||||
static char escaped[IW_ESSID_MAX_SIZE * 2 + 1];
|
|
||||||
const guint8 *s = ssid;
|
|
||||||
char *d = escaped;
|
|
||||||
|
|
||||||
if (nm_utils_is_empty_ssid ((const char *) ssid, len)) {
|
|
||||||
memcpy (escaped, "<hidden>", sizeof ("<hidden>"));
|
|
||||||
return escaped;
|
|
||||||
}
|
|
||||||
|
|
||||||
len = MIN (len, (guint32) IW_ESSID_MAX_SIZE);
|
|
||||||
while (len--) {
|
|
||||||
if (*s == '\0') {
|
|
||||||
*d++ = '\\';
|
|
||||||
*d++ = '0';
|
|
||||||
s++;
|
|
||||||
} else {
|
|
||||||
*d++ = *s++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*d = '\0';
|
|
||||||
return escaped;
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
nm_utils_same_ssid (const GByteArray * ssid1,
|
|
||||||
const GByteArray * ssid2,
|
|
||||||
gboolean ignore_trailing_null)
|
|
||||||
{
|
|
||||||
guint32 ssid1_len, ssid2_len;
|
|
||||||
|
|
||||||
if (ssid1 == ssid2)
|
|
||||||
return TRUE;
|
|
||||||
if ((ssid1 && !ssid2) || (!ssid1 && ssid2))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
ssid1_len = ssid1->len;
|
|
||||||
ssid2_len = ssid2->len;
|
|
||||||
if (ssid1_len && ssid2_len && ignore_trailing_null) {
|
|
||||||
if (ssid1->data[ssid1_len - 1] == '\0')
|
|
||||||
ssid1_len--;
|
|
||||||
if (ssid2->data[ssid2_len - 1] == '\0')
|
|
||||||
ssid2_len--;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ssid1_len != ssid2_len)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
return memcmp (ssid1->data, ssid2->data, ssid1_len) == 0 ? TRUE : FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* From hostap, Copyright (c) 2002-2005, Jouni Malinen <jkmaline@cc.hut.fi> */
|
/* From hostap, Copyright (c) 2002-2005, Jouni Malinen <jkmaline@cc.hut.fi> */
|
||||||
|
|
||||||
static int hex2num (char c)
|
static int hex2num (char c)
|
||||||
|
@@ -105,13 +105,6 @@ struct nl_addr * nm_utils_ip4_addr_to_nl_addr (guint32 ip4_addr);
|
|||||||
|
|
||||||
int nm_utils_ip4_netmask_to_prefix (guint32 ip4_netmask);
|
int nm_utils_ip4_netmask_to_prefix (guint32 ip4_netmask);
|
||||||
|
|
||||||
gboolean nm_utils_is_empty_ssid (const char * ssid, int len);
|
|
||||||
const char * nm_utils_escape_ssid (const guint8 *ssid, guint32 len);
|
|
||||||
|
|
||||||
gboolean nm_utils_same_ssid (const GByteArray * ssid1,
|
|
||||||
const GByteArray * ssid2,
|
|
||||||
gboolean ignore_trailing_null);
|
|
||||||
|
|
||||||
char * nm_utils_hexstr2bin (const char *hex, size_t len);
|
char * nm_utils_hexstr2bin (const char *hex, size_t len);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -690,8 +690,7 @@ nm_dbus_manager_start_service (NMDBusManager *self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (request_name_result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) {
|
if (request_name_result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) {
|
||||||
nm_warning ("Could not acquire the NetworkManager service as it is already taken.",
|
nm_warning ("Could not acquire the NetworkManager service as it is already taken.");
|
||||||
request_name_result);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -536,7 +536,6 @@ set_current_ap (NMDevice80211Wireless *self, NMAccessPoint *new_ap)
|
|||||||
{
|
{
|
||||||
NMDevice80211WirelessPrivate *priv = NM_DEVICE_802_11_WIRELESS_GET_PRIVATE (self);
|
NMDevice80211WirelessPrivate *priv = NM_DEVICE_802_11_WIRELESS_GET_PRIVATE (self);
|
||||||
GValue value = {0, };
|
GValue value = {0, };
|
||||||
gboolean changed;
|
|
||||||
char *old_path = NULL;
|
char *old_path = NULL;
|
||||||
|
|
||||||
g_return_if_fail (NM_IS_DEVICE_802_11_WIRELESS (self));
|
g_return_if_fail (NM_IS_DEVICE_802_11_WIRELESS (self));
|
||||||
@@ -2432,7 +2431,6 @@ static NMActStageReturn
|
|||||||
real_act_stage1_prepare (NMDevice *dev)
|
real_act_stage1_prepare (NMDevice *dev)
|
||||||
{
|
{
|
||||||
NMDevice80211Wireless *self = NM_DEVICE_802_11_WIRELESS (dev);
|
NMDevice80211Wireless *self = NM_DEVICE_802_11_WIRELESS (dev);
|
||||||
NMDevice80211WirelessPrivate *priv = NM_DEVICE_802_11_WIRELESS_GET_PRIVATE (self);
|
|
||||||
NMAccessPoint *ap;
|
NMAccessPoint *ap;
|
||||||
|
|
||||||
/* Make sure we've got an AP to connect to */
|
/* Make sure we've got an AP to connect to */
|
||||||
@@ -2692,7 +2690,6 @@ static void
|
|||||||
activation_success_handler (NMDevice *dev)
|
activation_success_handler (NMDevice *dev)
|
||||||
{
|
{
|
||||||
NMDevice80211Wireless * self = NM_DEVICE_802_11_WIRELESS (dev);
|
NMDevice80211Wireless * self = NM_DEVICE_802_11_WIRELESS (dev);
|
||||||
struct ether_addr addr;
|
|
||||||
NMAccessPoint * ap;
|
NMAccessPoint * ap;
|
||||||
gboolean automatic;
|
gboolean automatic;
|
||||||
|
|
||||||
@@ -2809,7 +2806,6 @@ get_property (GObject *object, guint prop_id,
|
|||||||
{
|
{
|
||||||
NMDevice80211Wireless *device = NM_DEVICE_802_11_WIRELESS (object);
|
NMDevice80211Wireless *device = NM_DEVICE_802_11_WIRELESS (object);
|
||||||
NMDevice80211WirelessPrivate *priv = NM_DEVICE_802_11_WIRELESS_GET_PRIVATE (device);
|
NMDevice80211WirelessPrivate *priv = NM_DEVICE_802_11_WIRELESS_GET_PRIVATE (device);
|
||||||
NMAccessPoint *ap;
|
|
||||||
struct ether_addr hw_addr;
|
struct ether_addr hw_addr;
|
||||||
char hw_addr_buf[20];
|
char hw_addr_buf[20];
|
||||||
|
|
||||||
|
@@ -371,7 +371,6 @@ real_get_best_connection (NMDevice *dev,
|
|||||||
NMDevice8023Ethernet * self = NM_DEVICE_802_3_ETHERNET (dev);
|
NMDevice8023Ethernet * self = NM_DEVICE_802_3_ETHERNET (dev);
|
||||||
BestConnectionInfo find_info;
|
BestConnectionInfo find_info;
|
||||||
guint32 caps;
|
guint32 caps;
|
||||||
gboolean link_active;
|
|
||||||
|
|
||||||
caps = nm_device_get_capabilities (dev);
|
caps = nm_device_get_capabilities (dev);
|
||||||
|
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */
|
/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */
|
||||||
|
|
||||||
|
#include <netinet/ether.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "nm-manager.h"
|
#include "nm-manager.h"
|
||||||
@@ -1266,7 +1267,6 @@ static GValueArray *
|
|||||||
add_one_connection_element (NMManager *manager,
|
add_one_connection_element (NMManager *manager,
|
||||||
NMDevice *device)
|
NMDevice *device)
|
||||||
{
|
{
|
||||||
GValueArray *elt;
|
|
||||||
static GType type = 0, ao_type = 0;
|
static GType type = 0, ao_type = 0;
|
||||||
GValue entry = {0, };
|
GValue entry = {0, };
|
||||||
GPtrArray *dev_array = NULL;
|
GPtrArray *dev_array = NULL;
|
||||||
@@ -1331,9 +1331,6 @@ impl_manager_get_active_connections (NMManager *manager,
|
|||||||
GError **err)
|
GError **err)
|
||||||
{
|
{
|
||||||
NMManagerPrivate *priv;
|
NMManagerPrivate *priv;
|
||||||
GType type, aoao_type, ao_type;
|
|
||||||
DBusGTypeSpecializedAppendContext ctx;
|
|
||||||
GValue val = {0, };
|
|
||||||
GSList *iter;
|
GSList *iter;
|
||||||
|
|
||||||
g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE);
|
g_return_val_if_fail (NM_IS_MANAGER (manager), FALSE);
|
||||||
|
@@ -138,11 +138,6 @@ nm_ip_up (void *data, int arg)
|
|||||||
guint32 ip4_wins_2;
|
guint32 ip4_wins_2;
|
||||||
guint32 ip4_netmask = 0xFFFFFFFF; /* Default mask of 255.255.255.255 */
|
guint32 ip4_netmask = 0xFFFFFFFF; /* Default mask of 255.255.255.255 */
|
||||||
|
|
||||||
if (!ifname) {
|
|
||||||
g_warning ("Didn't receive a tunnel device name");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ip4_address = ipcp_gotoptions[ifunit].ouraddr;
|
ip4_address = ipcp_gotoptions[ifunit].ouraddr;
|
||||||
if (!ip4_address) {
|
if (!ip4_address) {
|
||||||
g_warning ("Didn't receive an internal IP from pppd");
|
g_warning ("Didn't receive an internal IP from pppd");
|
||||||
|
@@ -140,16 +140,6 @@ nm_info ("Config: added '%s' value '%s'", key, secret ? "<omitted>" : &buf[0]);
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
|
||||||
nm_supplicant_config_remove_option (NMSupplicantConfig *self,
|
|
||||||
const char * key)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (NM_IS_SUPPLICANT_CONFIG (self), FALSE);
|
|
||||||
g_return_val_if_fail (key != NULL, FALSE);
|
|
||||||
|
|
||||||
return g_hash_table_remove (NM_SUPPLICANT_CONFIG_GET_PRIVATE (self)->config, key);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
nm_supplicant_config_finalize (GObject *object)
|
nm_supplicant_config_finalize (GObject *object)
|
||||||
{
|
{
|
||||||
@@ -265,7 +255,7 @@ nm_supplicant_config_add_setting_wireless (NMSupplicantConfig * self,
|
|||||||
priv->ap_scan = 2;
|
priv->ap_scan = 2;
|
||||||
|
|
||||||
if (!nm_supplicant_config_add_option (self, "ssid",
|
if (!nm_supplicant_config_add_option (self, "ssid",
|
||||||
setting->ssid->data,
|
(char *) setting->ssid->data,
|
||||||
setting->ssid->len,
|
setting->ssid->len,
|
||||||
FALSE)) {
|
FALSE)) {
|
||||||
nm_warning ("Error adding SSID to supplicant config.");
|
nm_warning ("Error adding SSID to supplicant config.");
|
||||||
@@ -289,7 +279,7 @@ nm_supplicant_config_add_setting_wireless (NMSupplicantConfig * self,
|
|||||||
|
|
||||||
if (setting->bssid) {
|
if (setting->bssid) {
|
||||||
if (!nm_supplicant_config_add_option (self, "bssid",
|
if (!nm_supplicant_config_add_option (self, "bssid",
|
||||||
setting->bssid->data,
|
(char *) setting->bssid->data,
|
||||||
setting->bssid->len,
|
setting->bssid->len,
|
||||||
FALSE)) {
|
FALSE)) {
|
||||||
nm_warning ("Error adding BSSID to supplicant config.");
|
nm_warning ("Error adding BSSID to supplicant config.");
|
||||||
|
@@ -36,49 +36,7 @@
|
|||||||
#include <nm-device.h>
|
#include <nm-device.h>
|
||||||
#include <nm-device-802-3-ethernet.h>
|
#include <nm-device-802-3-ethernet.h>
|
||||||
#include <nm-device-802-11-wireless.h>
|
#include <nm-device-802-11-wireless.h>
|
||||||
|
#include <nm-utils.h>
|
||||||
/* Shamelessly ripped from the Linux kernel ieee80211 stack */
|
|
||||||
static gboolean
|
|
||||||
nm_utils_is_empty_ssid (const char * ssid, int len)
|
|
||||||
{
|
|
||||||
/* Single white space is for Linksys APs */
|
|
||||||
if (len == 1 && ssid[0] == ' ')
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
/* Otherwise, if the entire ssid is 0, we assume it is hidden */
|
|
||||||
while (len--) {
|
|
||||||
if (ssid[len] != '\0')
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char *
|
|
||||||
nm_utils_escape_ssid (const char * ssid, guint32 len)
|
|
||||||
{
|
|
||||||
static char escaped[IW_ESSID_MAX_SIZE * 2 + 1];
|
|
||||||
const char *s = ssid;
|
|
||||||
char *d = escaped;
|
|
||||||
|
|
||||||
if (nm_utils_is_empty_ssid (ssid, len)) {
|
|
||||||
memcpy (escaped, "<hidden>", sizeof ("<hidden>"));
|
|
||||||
return escaped;
|
|
||||||
}
|
|
||||||
|
|
||||||
len = MIN (len, (guint32) IW_ESSID_MAX_SIZE);
|
|
||||||
while (len--) {
|
|
||||||
if (*s == '\0') {
|
|
||||||
*d++ = '\\';
|
|
||||||
*d++ = '0';
|
|
||||||
s++;
|
|
||||||
} else {
|
|
||||||
*d++ = *s++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*d = '\0';
|
|
||||||
return escaped;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
get_nm_state (NMClient *client)
|
get_nm_state (NMClient *client)
|
||||||
|
Reference in New Issue
Block a user