Hi Marcel. > +int caif_rtnl_init(void) > +{ > + struct sockaddr_nl addr; > + int sk, err; > + GError *gerr = NULL; > + > + sk = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE); > + if (sk < 0) > + return sk; > + > + memset(&addr, 0, sizeof(addr)); > + addr.nl_family = AF_NETLINK; > + addr.nl_groups = RTMGRP_LINK | RTMGRP_IPV4_IFADDR | RTMGRP_IPV4_ROUTE; > + > + err = bind(sk, (struct sockaddr *) &addr, sizeof(addr)); > + if (err < 0) { > + close(sk); > + return err; > + } > + > + channel = g_io_channel_unix_new(sk); > + g_io_channel_set_flags(channel, G_IO_FLAG_NONBLOCK, &gerr); > + g_io_channel_set_encoding(channel, NULL, &gerr); > + g_io_channel_set_buffered(channel, TRUE); > + g_io_channel_set_close_on_unref(channel, TRUE); > + > + rtnl_watch = g_io_add_watch(channel, > + G_IO_IN | G_IO_NVAL | G_IO_HUP | G_IO_ERR, > + netlink_event, NULL); > + pending_requests = NULL; > + > + return 0; > +}
Sigh, I realize I have a potential leak on gerr above. I'll wait for more review comments from you, and resubmit later. Regards, Sjur _______________________________________________ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono