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:
Tambet Ingo
2007-10-09 08:57:35 +00:00
parent 591dc59e1f
commit 24adbe3fa4
17 changed files with 141 additions and 551 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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);

View File

@@ -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.
* *

View File

@@ -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);

View File

@@ -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)) return TRUE;
{
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;
} }
g_string_append_printf (string, "_%x_", character); const char *
} nm_utils_escape_ssid (const guint8 * ssid, guint32 len)
object_path = string->str;
g_string_free (string, FALSE);
return object_path;
}
gchar *nm_dbus_unescape_object_path (const gchar *object_path)
{ {
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>"));
return escaped;
}
string = g_string_sized_new (strlen (object_path) + 1); len = MIN (len, (guint32) IW_ESSID_MAX_SIZE);
while (len--) {
if (*s == '\0') {
*d++ = '\\';
*d++ = '0';
s++;
} else {
*d++ = *s++;
}
}
*d = '\0';
return escaped;
}
for (p = object_path; *p != '\0'; p++) gboolean
nm_utils_same_ssid (const GByteArray * ssid1,
const GByteArray * ssid2,
gboolean ignore_trailing_null)
{ {
const gchar *q; guint32 ssid1_len, ssid2_len;
gchar *hex_digits, *end, utf8_character[6] = { '\0' };
gint utf8_character_size;
gunichar character;
gulong hex_value;
if (*p != '_') if (ssid1 == ssid2)
{ return TRUE;
g_string_append_c (string, *p); if ((ssid1 && !ssid2) || (!ssid1 && ssid2))
continue; 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--;
} }
q = strchr (p + 1, '_'); if (ssid1_len != ssid2_len)
return FALSE;
if ((q == NULL) || (q == p + 1)) return memcmp (ssid1->data, ssid2->data, ssid1_len) == 0 ? TRUE : FALSE;
{
g_string_free (string, TRUE);
return NULL;
}
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;
}
utf8_character_size =
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
{
const char *encoding1;
const char *encoding2;
const char *encoding3;
};
struct IsoLangToEncodings
{
const char * lang;
struct EncodingTriplet encodings;
};
/* 5-letter language codes */
static const struct IsoLangToEncodings isoLangEntries5[] =
{
/* Simplified Chinese */
{ "zh_cn", {"euc-cn", "gb2312", "gb18030"} }, /* PRC */
{ "zh_sg", {"euc-cn", "gb2312", "gb18030"} }, /* Singapore */
/* 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 */
enc = &isoLangEntries2[0];
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);
}
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

View File

@@ -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);

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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;
} }

View File

@@ -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];

View File

@@ -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);

View File

@@ -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);

View File

@@ -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");

View File

@@ -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.");

View File

@@ -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)