summaryrefslogtreecommitdiff
path: root/src/inet.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/inet.c')
-rw-r--r--src/inet.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/inet.c b/src/inet.c
index c9417182..a2a66daa 100644
--- a/src/inet.c
+++ b/src/inet.c
@@ -1417,6 +1417,7 @@ struct rs_cb_data {
__connman_inet_rs_cb_t callback;
struct sockaddr_in6 addr;
guint rs_timeout;
+ guint watch_id;
void *user_data;
};
@@ -1439,6 +1440,9 @@ static void rs_cleanup(struct rs_cb_data *data)
if (data->rs_timeout > 0)
g_source_remove(data->rs_timeout);
+ if (data->watch_id > 0)
+ g_source_remove(data->watch_id);
+
g_free(data);
}
@@ -1708,7 +1712,7 @@ int __connman_inet_ipv6_send_rs(int index, int timeout,
g_io_channel_set_encoding(data->channel, NULL, NULL);
g_io_channel_set_buffered(data->channel, FALSE);
- g_io_add_watch(data->channel,
+ data->watch_id = g_io_add_watch(data->channel,
G_IO_IN | G_IO_NVAL | G_IO_HUP | G_IO_ERR,
icmpv6_event, data);