summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/element.h7
-rw-r--r--src/element.c2
2 files changed, 9 insertions, 0 deletions
diff --git a/include/element.h b/include/element.h
index 083533da..e8199b76 100644
--- a/include/element.h
+++ b/include/element.h
@@ -103,6 +103,13 @@ struct connman_element {
struct connman_driver *driver;
void *driver_data;
+ void (*destruct) (struct connman_element *element);
+
+ union {
+ void *private;
+ struct connman_device *device;
+ };
+
GSList *properties;
struct {
diff --git a/src/element.c b/src/element.c
index 145d6fa2..fba5fb88 100644
--- a/src/element.c
+++ b/src/element.c
@@ -1192,6 +1192,8 @@ void connman_element_unref(struct connman_element *element)
g_atomic_int_get(&element->refcount) - 1);
if (g_atomic_int_dec_and_test(&element->refcount) == TRUE) {
+ if (element->destruct)
+ element->destruct(element);
free_properties(element);
g_free(element->ipv4.address);
g_free(element->ipv4.netmask);