summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/NetworkManagerDevice.c2
-rw-r--r--src/nm-dbus-net.c15
-rw-r--r--src/nm-dbus-nm.c16
3 files changed, 23 insertions, 10 deletions
diff --git a/src/NetworkManagerDevice.c b/src/NetworkManagerDevice.c
index 2a4bdbfdd9..cd968c15f5 100644
--- a/src/NetworkManagerDevice.c
+++ b/src/NetworkManagerDevice.c
@@ -2537,6 +2537,8 @@ try_connect:
}
else
{
+ gboolean adhoc = (nm_ap_get_mode (best_ap) == NETWORK_MODE_ADHOC);
+
if (nm_device_activation_handle_cancel (dev))
goto out;
diff --git a/src/nm-dbus-net.c b/src/nm-dbus-net.c
index 623b50f8fc..ba798a5fc4 100644
--- a/src/nm-dbus-net.c
+++ b/src/nm-dbus-net.c
@@ -52,14 +52,21 @@ static NMAccessPoint *nm_dbus_get_ap_from_object_path (const char *path, NMDevic
while ((ap = nm_ap_list_iter_next (iter)))
{
+ int len;
+
snprintf (compare_path, 100, "%s/%s/Networks/%s", NM_DBUS_PATH_DEVICES,
nm_device_get_iface (dev), nm_ap_get_essid (ap));
escaped_compare_path = nm_dbus_escape_object_path (compare_path);
- if (strncmp (path, escaped_compare_path,
- strlen (escaped_compare_path)) == 0)
+
+ len = strlen(escaped_compare_path);
+ if (strncmp (path, escaped_compare_path, len) == 0)
{
- g_free (escaped_compare_path);
- break;
+ /* Differentiate between 'foo' and 'foo-a' */
+ if (path[len] == '\0' || path[len] == '/')
+ {
+ g_free (escaped_compare_path);
+ break;
+ }
}
g_free (escaped_compare_path);
}
diff --git a/src/nm-dbus-nm.c b/src/nm-dbus-nm.c
index 335d247b54..5854bf2df2 100644
--- a/src/nm-dbus-nm.c
+++ b/src/nm-dbus-nm.c
@@ -443,17 +443,20 @@ static DBusMessage *nm_dbus_nm_set_wireless_enabled (DBusConnection *connection,
{
gboolean enabled = FALSE;
DBusError err;
+ NMData *app_data;
g_return_val_if_fail (data && data->data && connection && message, NULL);
dbus_error_init (&err);
- if (dbus_message_get_args (message, &err, DBUS_TYPE_BOOLEAN, &enabled, DBUS_TYPE_INVALID))
+ if (!dbus_message_get_args (message, &err, DBUS_TYPE_BOOLEAN, &enabled, DBUS_TYPE_INVALID))
+ return NULL;
+
+ app_data = data->data;
+ app_data->wireless_enabled = enabled;
+
+ if (!enabled)
{
GSList *elt;
- NMData *app_data;
-
- app_data = data->data;
- app_data->wireless_enabled = enabled;
/* Physically down all wireless devices */
nm_lock_mutex (app_data->dev_list_mutex, __FUNCTION__);
@@ -467,9 +470,10 @@ static DBusMessage *nm_dbus_nm_set_wireless_enabled (DBusConnection *connection,
}
}
nm_unlock_mutex (app_data->dev_list_mutex, __FUNCTION__);
- nm_policy_schedule_state_update (app_data);
}
+ nm_policy_schedule_state_update (data->data);
+
return NULL;
}