• Home
  • Raw
  • Download

Lines Matching refs:nd_fd

165 	if (ctx->nd_fd != -1)  in ipv6nd_open()
166 return ctx->nd_fd; in ipv6nd_open()
168 ctx->nd_fd = socket(PF_INET6, SOCK_RAW | SOCK_CLOEXEC | SOCK_NONBLOCK, in ipv6nd_open()
170 if (ctx->nd_fd == -1) in ipv6nd_open()
173 if ((ctx->nd_fd = socket(PF_INET6, SOCK_RAW, IPPROTO_ICMPV6)) == -1) in ipv6nd_open()
175 if ((on = fcntl(ctx->nd_fd, F_GETFD, 0)) == -1 || in ipv6nd_open()
176 fcntl(ctx->nd_fd, F_SETFD, on | FD_CLOEXEC) == -1) in ipv6nd_open()
178 close(ctx->nd_fd); in ipv6nd_open()
179 ctx->nd_fd = -1; in ipv6nd_open()
182 if ((on = fcntl(ctx->nd_fd, F_GETFL, 0)) == -1 || in ipv6nd_open()
183 fcntl(ctx->nd_fd, F_SETFL, on | O_NONBLOCK) == -1) in ipv6nd_open()
185 close(ctx->nd_fd); in ipv6nd_open()
186 ctx->nd_fd = -1; in ipv6nd_open()
193 if (setsockopt(ctx->nd_fd, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, in ipv6nd_open()
198 if (setsockopt(ctx->nd_fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, in ipv6nd_open()
203 if (setsockopt(ctx->nd_fd, IPPROTO_IPV6, IPV6_RECVHOPLIMIT, in ipv6nd_open()
210 if (setsockopt(ctx->nd_fd, IPPROTO_ICMPV6, ICMP6_FILTER, in ipv6nd_open()
214 eloop_event_add(dctx->eloop, ctx->nd_fd, in ipv6nd_open()
216 return ctx->nd_fd; in ipv6nd_open()
219 if (ctx->nd_fd != -1) { in ipv6nd_open()
220 eloop_event_delete(dctx->eloop, ctx->nd_fd, 0); in ipv6nd_open()
221 close(ctx->nd_fd); in ipv6nd_open()
222 ctx->nd_fd = -1; in ipv6nd_open()
300 if (sendmsg(ctx->nd_fd, &ctx->sndhdr, 0) == -1) { in ipv6nd_sendrsprobe()
479 if (ctx->ipv6->nd_fd != -1) { in ipv6nd_free()
480 eloop_event_delete(ctx->eloop, ctx->ipv6->nd_fd, 0); in ipv6nd_free()
481 close(ctx->ipv6->nd_fd); in ipv6nd_free()
482 ctx->ipv6->nd_fd = -1; in ipv6nd_free()
1643 len = recvmsg(ctx->nd_fd, &ctx->rcvhdr, 0); in ipv6nd_handledata()
1646 eloop_event_delete(dctx->eloop, ctx->nd_fd, 0); in ipv6nd_handledata()
1647 close(ctx->nd_fd); in ipv6nd_handledata()
1648 ctx->nd_fd = -1; in ipv6nd_handledata()