summaryrefslogtreecommitdiff
path: root/src/dhcp.c
diff options
context:
space:
mode:
authorJukka Rissanen <jukka.rissanen@linux.intel.com>2011-10-12 16:41:46 +0300
committerSamuel Ortiz <sameo@linux.intel.com>2011-10-20 19:27:25 +0200
commitd61fd8af9cf7d2810718880d8313c3ab07baad7a (patch)
treebb4eeab250e390130304be21cb09b7550a923e85 /src/dhcp.c
parent04589cdd53183bc2e3102bae95cb558dc29078ee (diff)
downloadconnman-d61fd8af9cf7d2810718880d8313c3ab07baad7a.tar.gz
connman-d61fd8af9cf7d2810718880d8313c3ab07baad7a.tar.bz2
connman-d61fd8af9cf7d2810718880d8313c3ab07baad7a.zip
dhcp: Reference count network properly
Diffstat (limited to 'src/dhcp.c')
-rw-r--r--src/dhcp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/dhcp.c b/src/dhcp.c
index 10e14031..c6df4fa1 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -468,6 +468,8 @@ int __connman_dhcp_start(struct connman_network *network, dhcp_cb callback)
dhcp->network = network;
dhcp->callback = callback;
+ connman_network_ref(network);
+
g_hash_table_replace(network_table, network, dhcp);
return dhcp_request(dhcp);
@@ -480,7 +482,8 @@ void __connman_dhcp_stop(struct connman_network *network)
if (network_table == NULL)
return;
- g_hash_table_remove(network_table, network);
+ if (g_hash_table_remove(network_table, network) == TRUE)
+ connman_network_unref(network);
}
int __connman_dhcp_init(void)