projects
/
connman
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6e8f721
)
Handle element registration failures
author
Marcel Holtmann
<marcel@holtmann.org>
Wed, 17 Dec 2008 23:11:05 +0000
(
00:11
+0100)
committer
Marcel Holtmann
<marcel@holtmann.org>
Wed, 17 Dec 2008 23:11:05 +0000
(
00:11
+0100)
plugins/dhclient.c
patch
|
blob
|
history
plugins/ethernet.c
patch
|
blob
|
history
plugins/ipv4.c
patch
|
blob
|
history
plugins/netdev.c
patch
|
blob
|
history
plugins/rtnllink.c
patch
|
blob
|
history
plugins/wifi.c
patch
|
blob
|
history
diff --git
a/plugins/dhclient.c
b/plugins/dhclient.c
index
3d6f189
..
06083b6
100644
(file)
--- a/
plugins/dhclient.c
+++ b/
plugins/dhclient.c
@@
-296,7
+296,8
@@
static DBusHandlerResult dhclient_filter(DBusConnection *conn,
element->type = CONNMAN_ELEMENT_TYPE_IPV4;
element->index = task->ifindex;
connman_element_update(task->element);
element->type = CONNMAN_ELEMENT_TYPE_IPV4;
element->index = task->ifindex;
connman_element_update(task->element);
- connman_element_register(element, task->element);
+ if (connman_element_register(element, task->element) < 0)
+ connman_element_unref(element);
} else if (g_ascii_strcasecmp(text, "RENEW") == 0 ||
g_ascii_strcasecmp(text, "REBIND") == 0) {
connman_element_update(task->element);
} else if (g_ascii_strcasecmp(text, "RENEW") == 0 ||
g_ascii_strcasecmp(text, "REBIND") == 0) {
connman_element_update(task->element);
diff --git
a/plugins/ethernet.c
b/plugins/ethernet.c
index
832d636
..
9cfa76b
100644
(file)
--- a/
plugins/ethernet.c
+++ b/
plugins/ethernet.c
@@
-76,7
+76,8
@@
static void ethernet_newlink(unsigned short type, int index,
netdev->subtype = CONNMAN_ELEMENT_SUBTYPE_NETWORK;
netdev->index = element->index;
netdev->subtype = CONNMAN_ELEMENT_SUBTYPE_NETWORK;
netdev->index = element->index;
- connman_element_register(netdev, element);
+ if (connman_element_register(netdev, element) < 0)
+ connman_element_unref(netdev);
}
} else {
DBG("carrier off");
}
} else {
DBG("carrier off");
diff --git
a/plugins/ipv4.c
b/plugins/ipv4.c
index
b1c26d4
..
b7d79be
100644
(file)
--- a/
plugins/ipv4.c
+++ b/
plugins/ipv4.c
@@
-399,7
+399,8
@@
static int ipv4_probe(struct connman_element *element)
connection->type = CONNMAN_ELEMENT_TYPE_CONNECTION;
connection->index = element->index;
connection->type = CONNMAN_ELEMENT_TYPE_CONNECTION;
connection->index = element->index;
- connman_element_register(connection, element);
+ if (connman_element_register(connection, element) < 0)
+ connman_element_unref(connection);
return 0;
}
return 0;
}
diff --git
a/plugins/netdev.c
b/plugins/netdev.c
index
3e08534
..
b32c12f
100644
(file)
--- a/
plugins/netdev.c
+++ b/
plugins/netdev.c
@@
-46,7
+46,8
@@
static void create_element(struct connman_element *parent,
else
element->subtype = CONNMAN_ELEMENT_SUBTYPE_UNKNOWN;
else
element->subtype = CONNMAN_ELEMENT_SUBTYPE_UNKNOWN;
- connman_element_register(element, parent);
+ if (connman_element_register(element, parent) < 0)
+ connman_element_unref(element);
}
static int netdev_probe(struct connman_element *element)
}
static int netdev_probe(struct connman_element *element)
diff --git
a/plugins/rtnllink.c
b/plugins/rtnllink.c
index
b0ed247
..
e7acc5f
100644
(file)
--- a/
plugins/rtnllink.c
+++ b/
plugins/rtnllink.c
@@
-110,7
+110,11
@@
static void rtnllink_newlink(unsigned short type, int index,
device->name = name;
device->devname = devname;
device->name = name;
device->devname = devname;
- connman_element_register(device, NULL);
+ if (connman_element_register(device, NULL) < 0) {
+ connman_element_unref(device);
+ return;
+ }
+
device_list = g_slist_append(device_list, device);
}
device_list = g_slist_append(device_list, device);
}
diff --git
a/plugins/wifi.c
b/plugins/wifi.c
index
aa6021d
..
23fbb89
100644
(file)
--- a/
plugins/wifi.c
+++ b/
plugins/wifi.c
@@
-243,7
+243,8
@@
static void state_change(struct connman_element *device,
dhcp->type = CONNMAN_ELEMENT_TYPE_DHCP;
dhcp->index = element->index;
dhcp->type = CONNMAN_ELEMENT_TYPE_DHCP;
dhcp->index = element->index;
- connman_element_register(dhcp, element);
+ if (connman_element_register(dhcp, element) < 0)
+ connman_element_unref(dhcp);
} else if (state == STATE_INACTIVE || state == STATE_DISCONNECTED) {
data->connected = FALSE;
connman_element_set_enabled(element, FALSE);
} else if (state == STATE_INACTIVE || state == STATE_DISCONNECTED) {
data->connected = FALSE;
connman_element_set_enabled(element, FALSE);
@@
-363,7
+364,10
@@
static void scan_result(struct connman_element *device,
DBG("%s (%s) strength %d", network->identifier,
element->wifi.security, element->strength);
DBG("%s (%s) strength %d", network->identifier,
element->wifi.security, element->strength);
- connman_element_register(element, device);
+ if (connman_element_register(element, device) < 0) {
+ connman_element_unref(element);
+ goto done;
+ }
} else {
data->pending = g_slist_remove(data->pending, element);
} else {
data->pending = g_slist_remove(data->pending, element);
@@
-381,6
+385,7
@@
static void scan_result(struct connman_element *device,
element->available = TRUE;
element->available = TRUE;
+done:
g_free(temp);
}
g_free(temp);
}
@@
-553,7
+558,11
@@
static void wifi_newlink(unsigned short type, int index,
device->name = name;
device->devname = devname;
device->name = name;
device->devname = devname;
- connman_element_register(device, NULL);
+ if (connman_element_register(device, NULL) < 0) {
+ connman_element_unregister(device);
+ return;
+ }
+
device_list = g_slist_append(device_list, device);
}
device_list = g_slist_append(device_list, device);
}