Lines Matching refs:range
411 struct ncprange range; in ncpaddr_aton() local
413 if (!ncprange_aton(&range, ncp, data)) in ncpaddr_aton()
416 if (range.ncprange_family == AF_INET && range.ncprange_ip4width != 32 && in ncpaddr_aton()
417 range.ncprange_ip4addr.s_addr != INADDR_ANY) { in ncpaddr_aton()
423 if (range.ncprange_family == AF_INET6 && range.ncprange_ip6width != 128 && in ncpaddr_aton()
424 !IN6_IS_ADDR_UNSPECIFIED(&range.ncprange_ip6addr)) { in ncpaddr_aton()
430 switch (range.ncprange_family) { in ncpaddr_aton()
432 addr->ncpaddr_family = range.ncprange_family; in ncpaddr_aton()
433 addr->ncpaddr_ip4addr = range.ncprange_ip4addr; in ncpaddr_aton()
438 addr->ncpaddr_family = range.ncprange_family; in ncpaddr_aton()
439 addr->ncpaddr_ip6addr = range.ncprange_ip6addr; in ncpaddr_aton()
448 ncprange_init(struct ncprange *range) in ncprange_init() argument
450 range->ncprange_family = AF_UNSPEC; in ncprange_init()
454 ncprange_isset(const struct ncprange *range) in ncprange_isset() argument
456 return range->ncprange_family != AF_UNSPEC; in ncprange_isset()
460 ncprange_equal(const struct ncprange *range, const struct ncprange *cmp) in ncprange_equal() argument
462 if (range->ncprange_family != cmp->ncprange_family) in ncprange_equal()
465 switch (range->ncprange_family) { in ncprange_equal()
467 if (range->ncprange_ip4addr.s_addr != cmp->ncprange_ip4addr.s_addr) in ncprange_equal()
469 return range->ncprange_ip4mask.s_addr == cmp->ncprange_ip4mask.s_addr; in ncprange_equal()
473 if (range->ncprange_ip6width != cmp->ncprange_ip6width) in ncprange_equal()
475 return !memcmp(&range->ncprange_ip6addr, &cmp->ncprange_ip6addr, in ncprange_equal()
476 sizeof range->ncprange_ip6addr); in ncprange_equal()
487 ncprange_isdefault(const struct ncprange *range) in ncprange_isdefault() argument
489 switch (range->ncprange_family) { in ncprange_isdefault()
491 if (range->ncprange_ip4addr.s_addr == INADDR_ANY) in ncprange_isdefault()
497 if (range->ncprange_ip6width == 0 && in ncprange_isdefault()
498 IN6_IS_ADDR_UNSPECIFIED(&range->ncprange_ip6addr)) in ncprange_isdefault()
508 ncprange_setdefault(struct ncprange *range, int af) in ncprange_setdefault() argument
510 memset(range, '\0', sizeof *range); in ncprange_setdefault()
511 range->ncprange_family = af; in ncprange_setdefault()
515 ncprange_contains(const struct ncprange *range, const struct ncpaddr *addr) in ncprange_contains() argument
523 if (range->ncprange_family != addr->ncpaddr_family) in ncprange_contains()
526 switch (range->ncprange_family) { in ncprange_contains()
528 return !((addr->ncpaddr_ip4addr.s_addr ^ range->ncprange_ip4addr.s_addr) & in ncprange_contains()
529 range->ncprange_ip4mask.s_addr); in ncprange_contains()
533 rangep = (const u_char *)range->ncprange_ip6addr.s6_addr; in ncprange_contains()
536 for (bits = range->ncprange_ip6width; bits > 0; bits -= 8) in ncprange_contains()
548 ncprange_containsip4(const struct ncprange *range, struct in_addr addr) in ncprange_containsip4() argument
550 switch (range->ncprange_family) { in ncprange_containsip4()
552 return !((addr.s_addr ^ range->ncprange_ip4addr.s_addr) & in ncprange_containsip4()
553 range->ncprange_ip4mask.s_addr); in ncprange_containsip4()
560 ncprange_copy(struct ncprange *range, const struct ncprange *from) in ncprange_copy() argument
564 range->ncprange_family = AF_INET; in ncprange_copy()
565 range->ncprange_ip4addr = from->ncprange_ip4addr; in ncprange_copy()
566 range->ncprange_ip4mask = from->ncprange_ip4mask; in ncprange_copy()
567 range->ncprange_ip4width = from->ncprange_ip4width; in ncprange_copy()
572 range->ncprange_family = AF_INET6; in ncprange_copy()
573 range->ncprange_ip6addr = from->ncprange_ip6addr; in ncprange_copy()
574 range->ncprange_ip6width = from->ncprange_ip6width; in ncprange_copy()
579 range->ncprange_family = AF_UNSPEC; in ncprange_copy()
584 ncprange_set(struct ncprange *range, const struct ncpaddr *addr, int width) in ncprange_set() argument
586 ncprange_sethost(range, addr); in ncprange_set()
587 ncprange_setwidth(range, width); in ncprange_set()
591 ncprange_sethost(struct ncprange *range, const struct ncpaddr *from) in ncprange_sethost() argument
595 range->ncprange_family = AF_INET; in ncprange_sethost()
596 range->ncprange_ip4addr = from->ncpaddr_ip4addr; in ncprange_sethost()
598 range->ncprange_ip4mask.s_addr = INADDR_ANY; in ncprange_sethost()
599 range->ncprange_ip4width = 0; in ncprange_sethost()
601 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_sethost()
602 range->ncprange_ip4width = 32; in ncprange_sethost()
608 range->ncprange_family = AF_INET6; in ncprange_sethost()
609 range->ncprange_ip6addr = from->ncpaddr_ip6addr; in ncprange_sethost()
610 range->ncprange_ip6width = 128; in ncprange_sethost()
615 range->ncprange_family = AF_UNSPEC; in ncprange_sethost()
620 ncprange_ishost(const struct ncprange *range) in ncprange_ishost() argument
622 switch (range->ncprange_family) { in ncprange_ishost()
624 return range->ncprange_ip4width == 32; in ncprange_ishost()
627 return range->ncprange_ip6width == 128; in ncprange_ishost()
635 ncprange_setwidth(struct ncprange *range, int width) in ncprange_setwidth() argument
637 switch (range->ncprange_family) { in ncprange_setwidth()
641 range->ncprange_ip4width = width; in ncprange_setwidth()
642 range->ncprange_ip4mask = bits2mask4(width); in ncprange_setwidth()
649 range->ncprange_ip6width = width; in ncprange_setwidth()
661 ncprange_setip4host(struct ncprange *range, struct in_addr from) in ncprange_setip4host() argument
663 range->ncprange_family = AF_INET; in ncprange_setip4host()
664 range->ncprange_ip4addr = from; in ncprange_setip4host()
666 range->ncprange_ip4mask.s_addr = INADDR_ANY; in ncprange_setip4host()
667 range->ncprange_ip4width = 0; in ncprange_setip4host()
669 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_setip4host()
670 range->ncprange_ip4width = 32; in ncprange_setip4host()
675 ncprange_setip4(struct ncprange *range, struct in_addr from, struct in_addr msk) in ncprange_setip4() argument
677 range->ncprange_family = AF_INET; in ncprange_setip4()
678 range->ncprange_ip4addr = from; in ncprange_setip4()
679 range->ncprange_ip4mask = msk; in ncprange_setip4()
680 range->ncprange_ip4width = mask42bits(msk); in ncprange_setip4()
685 ncprange_setip4mask(struct ncprange *range, struct in_addr mask) in ncprange_setip4mask() argument
687 if (range->ncprange_family != AF_INET) in ncprange_setip4mask()
689 range->ncprange_ip4mask = mask; in ncprange_setip4mask()
690 range->ncprange_ip4width = mask42bits(mask); in ncprange_setip4mask()
695 ncprange_setsa(struct ncprange *range, const struct sockaddr *host, in ncprange_setsa() argument
707 range->ncprange_family = AF_INET; in ncprange_setsa()
708 range->ncprange_ip4addr = host4->sin_addr; in ncprange_setsa()
710 range->ncprange_ip4mask.s_addr = INADDR_ANY; in ncprange_setsa()
711 range->ncprange_ip4width = 0; in ncprange_setsa()
713 range->ncprange_ip4mask.s_addr = mask4->sin_addr.s_addr; in ncprange_setsa()
714 range->ncprange_ip4width = mask42bits(mask4->sin_addr); in ncprange_setsa()
716 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_setsa()
717 range->ncprange_ip4width = 32; in ncprange_setsa()
723 range->ncprange_family = AF_INET6; in ncprange_setsa()
724 range->ncprange_ip6addr = host6->sin6_addr; in ncprange_setsa()
726 range->ncprange_ip6width = 0; in ncprange_setsa()
728 range->ncprange_ip6width = mask6 ? mask62bits(&mask6->sin6_addr) : 128; in ncprange_setsa()
733 range->ncprange_family = AF_UNSPEC; in ncprange_setsa()
738 ncprange_getsa(const struct ncprange *range, struct sockaddr_storage *host, in ncprange_getsa() argument
752 switch (range->ncprange_family) { in ncprange_getsa()
756 host4->sin_addr = range->ncprange_ip4addr; in ncprange_getsa()
760 mask4->sin_addr = range->ncprange_ip4mask; in ncprange_getsa()
768 host6->sin6_addr = range->ncprange_ip6addr; in ncprange_getsa()
772 mask6->sin6_addr = bits2mask6(range->ncprange_ip6width); in ncprange_getsa()
786 ncprange_getaddr(const struct ncprange *range, struct ncpaddr *addr) in ncprange_getaddr() argument
788 switch (range->ncprange_family) { in ncprange_getaddr()
791 addr->ncpaddr_ip4addr = range->ncprange_ip4addr; in ncprange_getaddr()
796 addr->ncpaddr_ip6addr = range->ncprange_ip6addr; in ncprange_getaddr()
805 ncprange_getip4addr(const struct ncprange *range, struct in_addr *addr) in ncprange_getip4addr() argument
807 if (range->ncprange_family != AF_INET) in ncprange_getip4addr()
810 *addr = range->ncprange_ip4addr; in ncprange_getip4addr()
815 ncprange_getip4mask(const struct ncprange *range, struct in_addr *mask) in ncprange_getip4mask() argument
817 switch (range->ncprange_family) { in ncprange_getip4mask()
819 *mask = range->ncprange_ip4mask; in ncprange_getip4mask()
827 ncprange_getwidth(const struct ncprange *range, int *width) in ncprange_getwidth() argument
829 switch (range->ncprange_family) { in ncprange_getwidth()
831 *width = range->ncprange_ip4width; in ncprange_getwidth()
835 *width = range->ncprange_ip6width; in ncprange_getwidth()
844 ncprange_ntoa(const struct ncprange *range) in ncprange_ntoa() argument
850 if (!ncprange_getaddr(range, &addr)) in ncprange_ntoa()
858 switch (range->ncprange_family) { in ncprange_ntoa()
860 if (range->ncprange_ip4width == -1) { in ncprange_ntoa()
866 (unsigned long)ntohl(range->ncprange_ip4mask.s_addr)); in ncprange_ntoa()
867 } else if (range->ncprange_ip4width < 32) in ncprange_ntoa()
868 snprintf(res + len, sizeof res - len, "/%d", range->ncprange_ip4width); in ncprange_ntoa()
874 if (range->ncprange_ip6width != 128) in ncprange_ntoa()
875 snprintf(res + len, sizeof res - len, "/%d", range->ncprange_ip6width); in ncprange_ntoa()
886 ncprange_scopeid(const struct ncprange *range) in ncprange_scopeid() argument
891 if (range->ncprange_family == AF_INET6) { in ncprange_scopeid()
892 sin6 = &range->ncprange_ip6addr; in ncprange_scopeid()
903 ncprange_aton(struct ncprange *range, struct ncp *ncp, const char *data) in ncprange_aton() argument
913 range->ncprange_family = AF_INET; in ncprange_aton()
914 range->ncprange_ip4addr = ncp->ipcp.peer_ip; in ncprange_aton()
915 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_aton()
916 range->ncprange_ip4width = 32; in ncprange_aton()
920 range->ncprange_family = AF_INET6; in ncprange_aton()
921 range->ncprange_ip6addr = ncp->ipv6cp.hisaddr.ncpaddr_ip6addr; in ncprange_aton()
922 range->ncprange_ip6width = 128; in ncprange_aton()
926 range->ncprange_family = AF_INET; in ncprange_aton()
927 range->ncprange_ip4addr = ncp->ipcp.my_ip; in ncprange_aton()
928 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_aton()
929 range->ncprange_ip4width = 32; in ncprange_aton()
933 range->ncprange_family = AF_INET6; in ncprange_aton()
934 range->ncprange_ip6addr = ncp->ipv6cp.myaddr.ncpaddr_ip6addr; in ncprange_aton()
935 range->ncprange_ip6width = 128; in ncprange_aton()
939 range->ncprange_family = AF_INET; in ncprange_aton()
940 range->ncprange_ip4addr = ncp->ipcp.ns.dns[0]; in ncprange_aton()
941 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_aton()
942 range->ncprange_ip4width = 32; in ncprange_aton()
945 range->ncprange_family = AF_INET; in ncprange_aton()
946 range->ncprange_ip4addr = ncp->ipcp.ns.dns[1]; in ncprange_aton()
947 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_aton()
948 range->ncprange_ip4width = 32; in ncprange_aton()
966 range->ncprange_family = AF_INET; in ncprange_aton()
968 range->ncprange_ip4addr = GetIpAddr(s); in ncprange_aton()
970 if (range->ncprange_ip4addr.s_addr == INADDR_NONE) { in ncprange_aton()
975 if (range->ncprange_ip4addr.s_addr == INADDR_ANY) { in ncprange_aton()
976 range->ncprange_ip4mask.s_addr = INADDR_ANY; in ncprange_aton()
977 range->ncprange_ip4width = 0; in ncprange_aton()
979 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_aton()
980 range->ncprange_ip4width = 32; in ncprange_aton()
985 range->ncprange_ip4mask = bits2mask4(bits); in ncprange_aton()
986 range->ncprange_ip4width = bits; in ncprange_aton()
992 range->ncprange_family = AF_INET6; in ncprange_aton()
994 if (inet_pton(AF_INET6, s, &range->ncprange_ip6addr) != 1) { in ncprange_aton()
999 if (IN6_IS_ADDR_UNSPECIFIED(&range->ncprange_ip6addr)) in ncprange_aton()
1000 range->ncprange_ip6width = 0; in ncprange_aton()
1002 range->ncprange_ip6width = (bits == -1) ? 128 : bits; in ncprange_aton()