Lines Matching refs:range

420   struct ncprange range;  in ncpaddr_aton()  local
422 if (!ncprange_aton(&range, ncp, data)) in ncpaddr_aton()
425 if (range.ncprange_family == AF_INET && range.ncprange_ip4width != 32) { in ncpaddr_aton()
431 if (range.ncprange_family == AF_INET6 && range.ncprange_ip6width != 128) { in ncpaddr_aton()
437 switch (range.ncprange_family) { in ncpaddr_aton()
439 addr->ncpaddr_family = range.ncprange_family; in ncpaddr_aton()
440 addr->ncpaddr_ip4addr = range.ncprange_ip4addr; in ncpaddr_aton()
445 addr->ncpaddr_family = range.ncprange_family; in ncpaddr_aton()
446 addr->ncpaddr_ip6addr = range.ncprange_ip6addr; in ncpaddr_aton()
455 ncprange_init(struct ncprange *range) in ncprange_init() argument
457 range->ncprange_family = AF_UNSPEC; in ncprange_init()
461 ncprange_isset(const struct ncprange *range) in ncprange_isset() argument
463 return range->ncprange_family != AF_UNSPEC; in ncprange_isset()
467 ncprange_equal(const struct ncprange *range, const struct ncprange *cmp) in ncprange_equal() argument
469 if (range->ncprange_family != cmp->ncprange_family) in ncprange_equal()
472 switch (range->ncprange_family) { in ncprange_equal()
474 if (range->ncprange_ip4addr.s_addr != cmp->ncprange_ip4addr.s_addr) in ncprange_equal()
476 return range->ncprange_ip4mask.s_addr == cmp->ncprange_ip4mask.s_addr; in ncprange_equal()
480 if (range->ncprange_ip6width != cmp->ncprange_ip6width) in ncprange_equal()
482 return !memcmp(&range->ncprange_ip6addr, &cmp->ncprange_ip6addr, in ncprange_equal()
483 sizeof range->ncprange_ip6addr); in ncprange_equal()
494 ncprange_isdefault(const struct ncprange *range) in ncprange_isdefault() argument
496 switch (range->ncprange_family) { in ncprange_isdefault()
498 if (range->ncprange_ip4addr.s_addr == INADDR_ANY) in ncprange_isdefault()
504 if (range->ncprange_ip6width == 0 && in ncprange_isdefault()
505 IN6_IS_ADDR_UNSPECIFIED(&range->ncprange_ip6addr)) in ncprange_isdefault()
515 ncprange_setdefault(struct ncprange *range, int af) in ncprange_setdefault() argument
517 memset(range, '\0', sizeof *range); in ncprange_setdefault()
518 range->ncprange_family = af; in ncprange_setdefault()
522 ncprange_contains(const struct ncprange *range, const struct ncpaddr *addr) in ncprange_contains() argument
530 if (range->ncprange_family != addr->ncpaddr_family) in ncprange_contains()
533 switch (range->ncprange_family) { in ncprange_contains()
535 return !((addr->ncpaddr_ip4addr.s_addr ^ range->ncprange_ip4addr.s_addr) & in ncprange_contains()
536 range->ncprange_ip4mask.s_addr); in ncprange_contains()
540 rangep = (const u_char *)range->ncprange_ip6addr.s6_addr; in ncprange_contains()
543 for (bits = range->ncprange_ip6width; bits > 0; bits -= 8) in ncprange_contains()
555 ncprange_containsip4(const struct ncprange *range, struct in_addr addr) in ncprange_containsip4() argument
557 switch (range->ncprange_family) { in ncprange_containsip4()
559 return !((addr.s_addr ^ range->ncprange_ip4addr.s_addr) & in ncprange_containsip4()
560 range->ncprange_ip4mask.s_addr); in ncprange_containsip4()
567 ncprange_copy(struct ncprange *range, const struct ncprange *from) in ncprange_copy() argument
571 range->ncprange_family = AF_INET; in ncprange_copy()
572 range->ncprange_ip4addr = from->ncprange_ip4addr; in ncprange_copy()
573 range->ncprange_ip4mask = from->ncprange_ip4mask; in ncprange_copy()
574 range->ncprange_ip4width = from->ncprange_ip4width; in ncprange_copy()
579 range->ncprange_family = AF_INET6; in ncprange_copy()
580 range->ncprange_ip6addr = from->ncprange_ip6addr; in ncprange_copy()
581 range->ncprange_ip6width = from->ncprange_ip6width; in ncprange_copy()
586 range->ncprange_family = AF_UNSPEC; in ncprange_copy()
591 ncprange_set(struct ncprange *range, const struct ncpaddr *addr, int width) in ncprange_set() argument
593 ncprange_sethost(range, addr); in ncprange_set()
594 ncprange_setwidth(range, width); in ncprange_set()
598 ncprange_sethost(struct ncprange *range, const struct ncpaddr *from) in ncprange_sethost() argument
602 range->ncprange_family = AF_INET; in ncprange_sethost()
603 range->ncprange_ip4addr = from->ncpaddr_ip4addr; in ncprange_sethost()
605 range->ncprange_ip4mask.s_addr = INADDR_ANY; in ncprange_sethost()
606 range->ncprange_ip4width = 0; in ncprange_sethost()
608 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_sethost()
609 range->ncprange_ip4width = 32; in ncprange_sethost()
615 range->ncprange_family = AF_INET6; in ncprange_sethost()
616 range->ncprange_ip6addr = from->ncpaddr_ip6addr; in ncprange_sethost()
617 range->ncprange_ip6width = 128; in ncprange_sethost()
622 range->ncprange_family = AF_UNSPEC; in ncprange_sethost()
627 ncprange_ishost(const struct ncprange *range) in ncprange_ishost() argument
629 switch (range->ncprange_family) { in ncprange_ishost()
631 return range->ncprange_ip4width == 32; in ncprange_ishost()
634 return range->ncprange_ip6width == 128; in ncprange_ishost()
642 ncprange_setwidth(struct ncprange *range, int width) in ncprange_setwidth() argument
644 switch (range->ncprange_family) { in ncprange_setwidth()
648 range->ncprange_ip4width = width; in ncprange_setwidth()
649 range->ncprange_ip4mask = bits2mask4(width); in ncprange_setwidth()
656 range->ncprange_ip6width = width; in ncprange_setwidth()
668 ncprange_setip4host(struct ncprange *range, struct in_addr from) in ncprange_setip4host() argument
670 range->ncprange_family = AF_INET; in ncprange_setip4host()
671 range->ncprange_ip4addr = from; in ncprange_setip4host()
673 range->ncprange_ip4mask.s_addr = INADDR_ANY; in ncprange_setip4host()
674 range->ncprange_ip4width = 0; in ncprange_setip4host()
676 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_setip4host()
677 range->ncprange_ip4width = 32; in ncprange_setip4host()
682 ncprange_setip4(struct ncprange *range, struct in_addr from, struct in_addr msk) in ncprange_setip4() argument
684 range->ncprange_family = AF_INET; in ncprange_setip4()
685 range->ncprange_ip4addr = from; in ncprange_setip4()
686 range->ncprange_ip4mask = msk; in ncprange_setip4()
687 range->ncprange_ip4width = mask42bits(msk); in ncprange_setip4()
692 ncprange_setip4mask(struct ncprange *range, struct in_addr mask) in ncprange_setip4mask() argument
694 if (range->ncprange_family != AF_INET) in ncprange_setip4mask()
696 range->ncprange_ip4mask = mask; in ncprange_setip4mask()
697 range->ncprange_ip4width = mask42bits(mask); in ncprange_setip4mask()
702 ncprange_setsa(struct ncprange *range, const struct sockaddr *host, in ncprange_setsa() argument
714 range->ncprange_family = AF_INET; in ncprange_setsa()
715 range->ncprange_ip4addr = host4->sin_addr; in ncprange_setsa()
717 range->ncprange_ip4mask.s_addr = INADDR_ANY; in ncprange_setsa()
718 range->ncprange_ip4width = 0; in ncprange_setsa()
720 range->ncprange_ip4mask.s_addr = mask4->sin_addr.s_addr; in ncprange_setsa()
721 range->ncprange_ip4width = mask42bits(mask4->sin_addr); in ncprange_setsa()
723 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_setsa()
724 range->ncprange_ip4width = 32; in ncprange_setsa()
730 range->ncprange_family = AF_INET6; in ncprange_setsa()
731 range->ncprange_ip6addr = host6->sin6_addr; in ncprange_setsa()
733 range->ncprange_ip6width = 0; in ncprange_setsa()
735 range->ncprange_ip6width = mask6 ? mask62bits(&mask6->sin6_addr) : 128; in ncprange_setsa()
740 range->ncprange_family = AF_UNSPEC; in ncprange_setsa()
745 ncprange_getsa(const struct ncprange *range, struct sockaddr_storage *host, in ncprange_getsa() argument
759 switch (range->ncprange_family) { in ncprange_getsa()
763 host4->sin_addr = range->ncprange_ip4addr; in ncprange_getsa()
767 mask4->sin_addr = range->ncprange_ip4mask; in ncprange_getsa()
775 host6->sin6_addr = range->ncprange_ip6addr; in ncprange_getsa()
779 mask6->sin6_addr = bits2mask6(range->ncprange_ip6width); in ncprange_getsa()
793 ncprange_getaddr(const struct ncprange *range, struct ncpaddr *addr) in ncprange_getaddr() argument
795 switch (range->ncprange_family) { in ncprange_getaddr()
798 addr->ncpaddr_ip4addr = range->ncprange_ip4addr; in ncprange_getaddr()
803 addr->ncpaddr_ip6addr = range->ncprange_ip6addr; in ncprange_getaddr()
812 ncprange_getip4addr(const struct ncprange *range, struct in_addr *addr) in ncprange_getip4addr() argument
814 if (range->ncprange_family != AF_INET) in ncprange_getip4addr()
817 *addr = range->ncprange_ip4addr; in ncprange_getip4addr()
822 ncprange_getip4mask(const struct ncprange *range, struct in_addr *mask) in ncprange_getip4mask() argument
824 switch (range->ncprange_family) { in ncprange_getip4mask()
826 *mask = range->ncprange_ip4mask; in ncprange_getip4mask()
834 ncprange_getwidth(const struct ncprange *range, int *width) in ncprange_getwidth() argument
836 switch (range->ncprange_family) { in ncprange_getwidth()
838 *width = range->ncprange_ip4width; in ncprange_getwidth()
842 *width = range->ncprange_ip6width; in ncprange_getwidth()
851 ncprange_ntoa(const struct ncprange *range) in ncprange_ntoa() argument
857 if (!ncprange_getaddr(range, &addr)) in ncprange_ntoa()
865 switch (range->ncprange_family) { in ncprange_ntoa()
867 if (range->ncprange_ip4width == -1) { in ncprange_ntoa()
873 (unsigned long)ntohl(range->ncprange_ip4mask.s_addr)); in ncprange_ntoa()
874 } else if (range->ncprange_ip4width < 32) in ncprange_ntoa()
875 snprintf(res + len, strlen(res) - len, "/%d", range->ncprange_ip4width); in ncprange_ntoa()
881 if (range->ncprange_ip6width != 128) in ncprange_ntoa()
882 snprintf(res + len, strlen(res) - len, "/%d", range->ncprange_ip6width); in ncprange_ntoa()
893 ncprange_scopeid(const struct ncprange *range) in ncprange_scopeid() argument
898 if (range->ncprange_family == AF_INET6) { in ncprange_scopeid()
899 sin6 = &range->ncprange_ip6addr; in ncprange_scopeid()
910 ncprange_aton(struct ncprange *range, struct ncp *ncp, const char *data) in ncprange_aton() argument
920 range->ncprange_family = AF_INET; in ncprange_aton()
921 range->ncprange_ip4addr = ncp->ipcp.peer_ip; in ncprange_aton()
922 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_aton()
923 range->ncprange_ip4width = 32; in ncprange_aton()
927 range->ncprange_family = AF_INET6; in ncprange_aton()
928 range->ncprange_ip6addr = ncp->ipv6cp.hisaddr.ncpaddr_ip6addr; in ncprange_aton()
929 range->ncprange_ip6width = 128; in ncprange_aton()
933 range->ncprange_family = AF_INET; in ncprange_aton()
934 range->ncprange_ip4addr = ncp->ipcp.my_ip; in ncprange_aton()
935 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_aton()
936 range->ncprange_ip4width = 32; in ncprange_aton()
940 range->ncprange_family = AF_INET6; in ncprange_aton()
941 range->ncprange_ip6addr = ncp->ipv6cp.myaddr.ncpaddr_ip6addr; in ncprange_aton()
942 range->ncprange_ip6width = 128; in ncprange_aton()
946 range->ncprange_family = AF_INET; in ncprange_aton()
947 range->ncprange_ip4addr = ncp->ipcp.ns.dns[0]; in ncprange_aton()
948 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_aton()
949 range->ncprange_ip4width = 32; in ncprange_aton()
952 range->ncprange_family = AF_INET; in ncprange_aton()
953 range->ncprange_ip4addr = ncp->ipcp.ns.dns[1]; in ncprange_aton()
954 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_aton()
955 range->ncprange_ip4width = 32; in ncprange_aton()
973 range->ncprange_family = AF_INET; in ncprange_aton()
975 range->ncprange_ip4addr = GetIpAddr(s); in ncprange_aton()
977 if (range->ncprange_ip4addr.s_addr == INADDR_NONE) { in ncprange_aton()
982 if (range->ncprange_ip4addr.s_addr == INADDR_ANY) { in ncprange_aton()
983 range->ncprange_ip4mask.s_addr = INADDR_ANY; in ncprange_aton()
984 range->ncprange_ip4width = 0; in ncprange_aton()
986 range->ncprange_ip4mask.s_addr = INADDR_BROADCAST; in ncprange_aton()
987 range->ncprange_ip4width = 32; in ncprange_aton()
992 range->ncprange_ip4mask = bits2mask4(bits); in ncprange_aton()
993 range->ncprange_ip4width = bits; in ncprange_aton()
999 range->ncprange_family = AF_INET6; in ncprange_aton()
1001 if (inet_pton(AF_INET6, s, &range->ncprange_ip6addr) != 1) { in ncprange_aton()
1006 if (IN6_IS_ADDR_UNSPECIFIED(&range->ncprange_ip6addr)) in ncprange_aton()
1007 range->ncprange_ip6width = 0; in ncprange_aton()
1009 range->ncprange_ip6width = (bits == -1) ? 128 : bits; in ncprange_aton()