Home | History | Annotate | Download | only in avahi-core

Lines Matching refs:nl

46 int avahi_netlink_work(AvahiNetlink *nl, int block) {
55 assert(nl);
57 iov.iov_base = nl->buffer;
58 iov.iov_len = nl->buffer_length;
68 if ((bytes = recvmsg(nl->fd, &smsg, 0)) < 0) {
88 p = (struct nlmsghdr *) nl->buffer;
90 assert(nl->callback);
98 nl->callback(nl, p, nl->userdata);
105 AvahiNetlink *nl = userdata;
108 assert(nl);
109 assert(fd == nl->fd);
111 avahi_netlink_work(nl, 0);
114 AvahiNetlink *avahi_netlink_new(const AvahiPoll *poll_api, uint32_t groups, void (*cb) (AvahiNetlink *nl, struct nlmsghdr *n, void* userdata), void* userdata) {
118 AvahiNetlink *nl = NULL;
143 if (!(nl = avahi_new(AvahiNetlink, 1))) {
148 nl->poll_api = poll_api;
149 nl->fd = fd;
150 nl->seq = 0;
151 nl->callback = cb;
152 nl->userdata = userdata;
154 if (!(nl->buffer = avahi_new(uint8_t, nl->buffer_length = 64*1024))) {
159 if (!(nl->watch = poll_api->watch_new(poll_api, fd, AVAHI_WATCH_IN, socket_event, nl))) {
164 return nl;
171 if (nl) {
172 avahi_free(nl->buffer);
173 avahi_free(nl);
179 void avahi_netlink_free(AvahiNetlink *nl) {
180 assert(nl);
182 if (nl->watch)
183 nl->poll_api->watch_free(nl->watch);
185 if (nl->fd >= 0)
186 close(nl->fd);
188 avahi_free(nl->buffer);
189 avahi_free(nl);
192 int avahi_netlink_send(AvahiNetlink *nl, struct nlmsghdr *m, unsigned *ret_seq) {
193 assert(nl);
196 m->nlmsg_seq = nl->seq++;
199 if (send(nl->fd, m, m->nlmsg_len, 0) < 0) {