projects
/
connman
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't add useless domain and search entries to resolv.conf
[connman]
/
src
/
device.c
diff --git
a/src/device.c
b/src/device.c
index
ff51943
..
cd9105d
100644
(file)
--- a/
src/device.c
+++ b/
src/device.c
@@
-1361,6
+1361,7
@@
static void connect_known_network(struct connman_device *device)
struct connman_network *network = NULL;
GHashTableIter iter;
gpointer key, value;
struct connman_network *network = NULL;
GHashTableIter iter;
gpointer key, value;
+ const char *name;
unsigned int count = 0;
DBG("device %p", device);
unsigned int count = 0;
DBG("device %p", device);
@@
-1369,7
+1370,6
@@
static void connect_known_network(struct connman_device *device)
while (g_hash_table_iter_next(&iter, &key, &value) == TRUE) {
connman_uint8_t old_strength, new_strength;
while (g_hash_table_iter_next(&iter, &key, &value) == TRUE) {
connman_uint8_t old_strength, new_strength;
- const char *name;
count++;
count++;
@@
-1402,9
+1402,13
@@
static void connect_known_network(struct connman_device *device)
if (network != NULL) {
int err;
if (network != NULL) {
int err;
- err = connman_network_connect(network);
- if (err == 0 || err == -EINPROGRESS)
- return;
+ name = connman_network_get_string(value,
+ CONNMAN_PROPERTY_ID_NAME);
+ if (name != NULL) {
+ err = __connman_network_connect(network);
+ if (err == 0 || err == -EINPROGRESS)
+ return;
+ }
}
if (count > 0)
}
if (count > 0)
@@
-1710,13
+1714,25
@@
void __connman_device_set_network(struct connman_device *device,
{
const char *name;
{
const char *name;
+ if (device->network == network)
+ return;
+
+ if (device->network != NULL)
+ connman_network_unref(device->network);
+
if (network != NULL) {
name = connman_network_get_string(network,
CONNMAN_PROPERTY_ID_NAME);
if (network != NULL) {
name = connman_network_get_string(network,
CONNMAN_PROPERTY_ID_NAME);
+ g_free(device->last_network);
device->last_network = g_strdup(name);
device->last_network = g_strdup(name);
- }
- device->network = network;
+ device->network = connman_network_ref(network);
+ } else {
+ g_free(device->last_network);
+ device->last_network = NULL;
+
+ device->network = NULL;
+ }
}
/**
}
/**