diff options
author | Seonah Moon <seonah1.moon@samsung.com> | 2018-01-08 13:42:54 +0900 |
---|---|---|
committer | Seonah Moon <seonah1.moon@samsung.com> | 2018-01-08 13:43:31 +0900 |
commit | 9362752a471a5c892d679548fbf2828d5fc5684b (patch) | |
tree | 83c7d29a28556906938f5c2198d81e2d35f86f92 /plugins/bluetooth.c | |
parent | 22633ced6225d294ce8483efbf2b39ea0c0c1b65 (diff) | |
download | connman-9362752a471a5c892d679548fbf2828d5fc5684b.tar.gz connman-9362752a471a5c892d679548fbf2828d5fc5684b.tar.bz2 connman-9362752a471a5c892d679548fbf2828d5fc5684b.zip |
Imported Upstream version 1.35upstream/1.35
Change-Id: I174854914d9fd06a813270b57d1f7bc2bac63c6a
Signed-off-by: Seonah Moon <seonah1.moon@samsung.com>
Diffstat (limited to 'plugins/bluetooth.c')
-rw-r--r-- | plugins/bluetooth.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/plugins/bluetooth.c b/plugins/bluetooth.c index 45cc3194..f759a902 100644 --- a/plugins/bluetooth.c +++ b/plugins/bluetooth.c @@ -206,7 +206,7 @@ static void pan_connect_cb(DBusMessage *message, void *user_data) DBusMessageIter iter; pan = g_hash_table_lookup(networks, path); - if (!pan) { + if (!pan || !pan->network) { DBG("network already removed"); return; } @@ -218,6 +218,7 @@ static void pan_connect_cb(DBusMessage *message, void *user_data) if (strcmp(dbus_error, "org.bluez.Error.AlreadyConnected") != 0) { + connman_network_set_associating(pan->network, false); connman_network_set_error(pan->network, CONNMAN_NETWORK_ERROR_ASSOCIATE_FAIL); return; @@ -272,7 +273,7 @@ static void pan_disconnect_cb(DBusMessage *message, void *user_data) struct bluetooth_pan *pan; pan = g_hash_table_lookup(networks, path); - if (!pan) { + if (!pan || !pan->network) { DBG("network already removed"); return; } @@ -337,6 +338,7 @@ static void pan_create_nap(struct bluetooth_pan *pan) { struct connman_device *device; const char* role; + const char *adapter; role = proxy_get_role(pan->btdevice_proxy); if (!role) { @@ -344,8 +346,12 @@ static void pan_create_nap(struct bluetooth_pan *pan) return; } - device = g_hash_table_lookup(devices, - proxy_get_string(pan->btdevice_proxy, "Adapter")); + adapter = proxy_get_string(pan->btdevice_proxy, "Adapter"); + + if (!adapter) + return; + + device = g_hash_table_lookup(devices, adapter); if (!device || !connman_device_get_powered(device)) return; @@ -713,12 +719,16 @@ static bool tethering_create(const char *path, DBG("path %s bridge %s", path, bridge); - if (!bridge) - return -EINVAL; + if (!bridge) { + g_free(tethering); + return false; + } proxy = g_dbus_proxy_new(client, path, "org.bluez.NetworkServer1"); - if (!proxy) + if (!proxy) { + g_free(tethering); return false; + } tethering->technology = technology; tethering->bridge = g_strdup(bridge); |