Lines Matching refs:rap
235 struct ra *rap, *sorted, *ran, *rat; in ipv6rs_sort() local
244 for (rap = ifp->ras; rap && (ran = rap->next, 1); rap = ran) { in ipv6rs_sort()
246 if (timercmp(&rap->received, &sorted->received, <)) { in ipv6rs_sort()
247 rap->next = sorted; in ipv6rs_sort()
248 sorted = rap; in ipv6rs_sort()
253 if (timercmp(&rap->received, &rat->next->received, <)) { in ipv6rs_sort()
254 rap->next = rat->next; in ipv6rs_sort()
255 rat->next = rap; in ipv6rs_sort()
261 rat->next = rap; in ipv6rs_sort()
262 rap->next = NULL; in ipv6rs_sort()
287 struct ra *rap; in ipv6rs_handledata() local
354 for (rap = ifp->ras; rap; rap = rap->next) { in ipv6rs_handledata()
355 if (memcmp(rap->from.s6_addr, from.sin6_addr.s6_addr, in ipv6rs_handledata()
356 sizeof(rap->from.s6_addr)) == 0) in ipv6rs_handledata()
362 if (options & DHCPCD_DEBUG || rap == NULL || in ipv6rs_handledata()
363 (rap->expired || rap->data_len != len || in ipv6rs_handledata()
364 memcmp(rap->data, (unsigned char *)icp, rap->data_len) != 0)) in ipv6rs_handledata()
366 if (rap) { in ipv6rs_handledata()
367 free(rap->data); in ipv6rs_handledata()
368 rap->data_len = 0; in ipv6rs_handledata()
374 if (rap == NULL) { in ipv6rs_handledata()
375 rap = xmalloc(sizeof(*rap)); in ipv6rs_handledata()
376 rap->next = ifp->ras; in ipv6rs_handledata()
377 rap->options = NULL; in ipv6rs_handledata()
378 ifp->ras = rap; in ipv6rs_handledata()
379 memcpy(rap->from.s6_addr, from.sin6_addr.s6_addr, in ipv6rs_handledata()
380 sizeof(rap->from.s6_addr)); in ipv6rs_handledata()
381 strlcpy(rap->sfrom, sfrom, sizeof(rap->sfrom)); in ipv6rs_handledata()
382 rap->data_len = 0; in ipv6rs_handledata()
384 if (rap->data_len == 0) { in ipv6rs_handledata()
385 rap->data = xmalloc(len); in ipv6rs_handledata()
386 memcpy(rap->data, icp, len); in ipv6rs_handledata()
387 rap->data_len = len; in ipv6rs_handledata()
390 get_monotonic(&rap->received); in ipv6rs_handledata()
392 rap->lifetime = ntohs(nd_ra->nd_ra_router_lifetime); in ipv6rs_handledata()
393 rap->expired = 0; in ipv6rs_handledata()
443 rap->prefix_len = pi->nd_opt_pi_prefix_len; in ipv6rs_handledata()
444 rap->prefix_vltime = in ipv6rs_handledata()
446 rap->prefix_pltime = in ipv6rs_handledata()
510 for (raol = NULL, rao = rap->options; in ipv6rs_handledata()
523 rap->options = rao->next; in ipv6rs_handledata()
532 rao->next = rap->options; in ipv6rs_handledata()
533 rap->options = rao; in ipv6rs_handledata()
543 timeradd(&rap->received, &expire, &rao->expire); in ipv6rs_handledata()
573 const struct ra *rap; in ipv6rs_env() local
581 for (rap = ifp->ras, i = 1; rap; rap = rap->next, i++) { in ipv6rs_env()
585 setvar(&env, prefix, buffer, rap->sfrom); in ipv6rs_env()
589 for (rao = rap->options; rao; rao = rao->next) { in ipv6rs_env()
626 "%d", rap->prefix_len); in ipv6rs_env()
632 "%d", rap->prefix_vltime); in ipv6rs_env()
638 "%d", rap->prefix_pltime); in ipv6rs_env()
654 ipv6rs_free_opts(struct ra *rap) in ipv6rs_free_opts() argument
658 for (rao = rap->options; rao && (raon = rao->next, 1); rao = raon) { in ipv6rs_free_opts()
667 struct ra *rap, *ran; in ipv6rs_free() local
671 for (rap = ifp->ras; rap && (ran = rap->next, 1); rap = ran) { in ipv6rs_free()
672 ipv6rs_free_opts(rap); in ipv6rs_free()
673 free(rap->data); in ipv6rs_free()
674 free(rap); in ipv6rs_free()
683 struct ra *rap, *ran, *ral; in ipv6rs_expire() local
695 for (rap = ifp->ras, ral = NULL; in ipv6rs_expire()
696 rap && (ran = rap->next, 1); in ipv6rs_expire()
697 ral = rap, rap = ran) in ipv6rs_expire()
699 lt.tv_sec = rap->lifetime; in ipv6rs_expire()
701 timeradd(&rap->received, <, &expire); in ipv6rs_expire()
704 ifp->name, rap->sfrom); in ipv6rs_expire()
705 rap->expired = expired = 1; in ipv6rs_expire()
710 ipv6rs_free_opts(rap); in ipv6rs_expire()
711 free(rap); in ipv6rs_expire()
718 for (rao = rap->options, raol = NULL; in ipv6rs_expire()
727 ifp->name, rap->sfrom, rao->type); in ipv6rs_expire()
728 rap->expired = expired = 1; in ipv6rs_expire()
732 rap->options = raon; in ipv6rs_expire()