Hi, On Thu, 2015-01-08 at 11:26 -0500, Hannu Mallat wrote: > Besides the IO channel for routing events, the associated watch also > needs to be cleaned up on exit. > --- > src/rtnl.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/src/rtnl.c b/src/rtnl.c > index a46aa28..e03a390 100644 > --- a/src/rtnl.c > +++ b/src/rtnl.c > @@ -1291,6 +1291,7 @@ static const char *type2string(uint16_t type) > } > > static GIOChannel *channel = NULL; > +static guint channel_watch = 0; > > struct rtnl_request { > struct nlmsghdr hdr; > @@ -1621,8 +1622,9 @@ int __connman_rtnl_init(void) > g_io_channel_set_encoding(channel, NULL, NULL); > g_io_channel_set_buffered(channel, FALSE); > > - g_io_add_watch(channel, G_IO_IN | G_IO_NVAL | G_IO_HUP | G_IO_ERR, > - netlink_event, NULL); > + channel_watch = g_io_add_watch(channel, > + G_IO_IN | G_IO_NVAL | G_IO_HUP | G_IO_ERR, > + netlink_event, NULL); > > return 0; > } > @@ -1672,6 +1674,11 @@ void __connman_rtnl_cleanup(void) > g_slist_free(request_list); > request_list = NULL; > > + if (channel_watch) { > + g_source_remove(channel_watch); > + channel_watch = 0; > + } > + > g_io_channel_shutdown(channel, TRUE, NULL); > g_io_channel_unref(channel); >
Here I have the same comment as to patch 2/6. Cheers, Patrik _______________________________________________ connman mailing list connman@connman.net https://lists.connman.net/mailman/listinfo/connman