Lines Matching full:addr
51 int iface_check(int family, struct all_addr *addr, char *name, int *indexp) in iface_check() argument
90 if (daemon->if_names || (addr && daemon->if_addrs)) in iface_check()
99 if (addr && tmp->addr.sa.sa_family == family) in iface_check()
102 tmp->addr.in.sin_addr.s_addr == addr->addr.addr4.s_addr) in iface_check()
106 IN6_ARE_ADDR_EQUAL(&tmp->addr.in6.sin6_addr, in iface_check()
107 &addr->addr.addr6) && in iface_check()
108 (!IN6_IS_ADDR_LINKLOCAL(&addr->addr.addr6) || in iface_check()
109 (tmp->addr.in6.sin6_scope_id == (uint32_t) *indexp))) in iface_check()
123 union mysockaddr *addr, struct in_addr netmask) in iface_allowed() argument
134 if (sockaddr_isequal(&iface->addr, addr)) in iface_allowed()
180 if (addr->sa.sa_family == AF_INET && in iface_allowed()
181 !iface_check(AF_INET, (struct all_addr *)&addr->in.sin_addr, ifr.ifr_name, NULL)) in iface_allowed()
189 int ifindex = (int) addr->in6.sin6_scope_id; in iface_allowed()
190 if (addr->sa.sa_family == AF_INET6 && in iface_allowed()
191 !iface_check(AF_INET6, (struct all_addr *)&addr->in6.sin6_addr, ifr.ifr_name, &ifindex)) in iface_allowed()
198 iface->addr = *addr; in iface_allowed()
215 union mysockaddr addr; in iface_allowed_v6() local
220 memset(&addr, 0, sizeof(addr)); in iface_allowed_v6()
222 addr.in6.sin6_len = sizeof(addr.in6); in iface_allowed_v6()
224 addr.in6.sin6_family = AF_INET6; in iface_allowed_v6()
225 addr.in6.sin6_addr = *local; in iface_allowed_v6()
226 addr.in6.sin6_port = htons(daemon->port); in iface_allowed_v6()
234 addr.in6.sin6_scope_id = scope; in iface_allowed_v6()
237 return iface_allowed((struct irec **)vparam, if_index, &addr, netmask); in iface_allowed_v6()
244 union mysockaddr addr; in iface_allowed_v4() local
246 memset(&addr, 0, sizeof(addr)); in iface_allowed_v4()
248 addr.in.sin_len = sizeof(addr.in); in iface_allowed_v4()
250 addr.in.sin_family = AF_INET; in iface_allowed_v4()
251 addr.in.sin_addr = broadcast; /* warning */ in iface_allowed_v4()
252 addr.in.sin_addr = local; in iface_allowed_v4()
253 addr.in.sin_port = htons(daemon->port); in iface_allowed_v4()
255 return iface_allowed((struct irec **)vparam, if_index, &addr, netmask); in iface_allowed_v4()
282 union mysockaddr addr; in create_ipv6_listener() local
287 memset(&addr, 0, sizeof(addr)); in create_ipv6_listener()
288 addr.in6.sin6_family = AF_INET6; in create_ipv6_listener()
289 addr.in6.sin6_addr = in6addr_any; in create_ipv6_listener()
290 addr.in6.sin6_port = htons(port); in create_ipv6_listener()
292 addr.in6.sin6_len = sizeof(addr.in6); in create_ipv6_listener()
315 bind(tcpfd, (struct sockaddr *)&addr, sa_len(&addr)) == -1 || in create_ipv6_listener()
317 bind(fd, (struct sockaddr *)&addr, sa_len(&addr)) == -1) in create_ipv6_listener()
335 union mysockaddr addr; in create_wildcard_listeners() local
340 memset(&addr, 0, sizeof(addr)); in create_wildcard_listeners()
341 addr.in.sin_family = AF_INET; in create_wildcard_listeners()
342 addr.in.sin_addr.s_addr = INADDR_ANY; in create_wildcard_listeners()
343 addr.in.sin_port = htons(daemon->port); in create_wildcard_listeners()
345 addr.in.sin_len = sizeof(struct sockaddr_in); in create_wildcard_listeners()
356 bind(tcpfd, (struct sockaddr *)&addr, sa_len(&addr)) == -1 || in create_wildcard_listeners()
370 bind(fd, (struct sockaddr *)&addr, sa_len(&addr)) == -1) in create_wildcard_listeners()
394 addr.in.sin_port = htons(TFTP_PORT); in create_wildcard_listeners()
405 bind(tftpfd, (struct sockaddr *)&addr, sa_len(&addr)) == -1) in create_wildcard_listeners()
442 new->family = iface->addr.sa.sa_family; in create_bound_listener()
452 if ((new->tcpfd = socket(iface->addr.sa.sa_family, SOCK_STREAM, 0)) == -1 || in create_bound_listener()
453 (new->fd = socket(iface->addr.sa.sa_family, SOCK_DGRAM, 0)) == -1 || in create_bound_listener()
461 if (iface->addr.sa.sa_family == AF_INET6) in create_bound_listener()
471 if ((rc = bind(new->fd, &iface->addr.sa, sa_len(&iface->addr))) != -1) in create_bound_listener()
480 if (iface->addr.sa.sa_family == AF_INET6 && (errno == ENODEV || errno == EADDRNOTAVAIL) && in create_bound_listener()
490 if (rc == -1 || bind(new->tcpfd, &iface->addr.sa, sa_len(&iface->addr)) == -1) in create_bound_listener()
492 prettyprint_addr(&iface->addr, daemon->namebuff); in create_bound_listener()
507 if ((daemon->options & OPT_TFTP) && iface->addr.sa.sa_family == AF_INET && iface->dhcp_ok) in create_bound_listener()
509 short save = iface->addr.in.sin_port; in create_bound_listener()
510 iface->addr.in.sin_port = htons(TFTP_PORT); in create_bound_listener()
514 bind(new->tftpfd, &iface->addr.sa, sa_len(&iface->addr)) == -1) in create_bound_listener()
516 iface->addr.in.sin_port = save; in create_bound_listener()
538 if (sockaddr_isequal(&listener_iface->addr, &new_iface->addr)) { in fixup_possible_existing_listener()
556 int port = prettyprint_addr(&listener->iface->addr, daemon->namebuff); in delete_listener()
600 if (iface && listener_iface && sockaddr_isequal(&listener_iface->addr, &iface->addr)) { in close_bound_listener()
633 new->family = iface->addr.sa.sa_family; in create_bound_listeners()
643 if ((new->tcpfd = socket(iface->addr.sa.sa_family, SOCK_STREAM, 0)) == -1 || in create_bound_listeners()
644 (new->fd = socket(iface->addr.sa.sa_family, SOCK_DGRAM, 0)) == -1 || in create_bound_listeners()
652 if (iface->addr.sa.sa_family == AF_INET6) in create_bound_listeners()
662 if ((rc = bind(new->fd, &iface->addr.sa, sa_len(&iface->addr))) != -1) in create_bound_listeners()
669 if (iface->addr.sa.sa_family == AF_INET6 && (errno == ENODEV || errno == EADDRNOTAVAIL) && in create_bound_listeners()
679 if (rc == -1 || bind(new->tcpfd, &iface->addr.sa, sa_len(&iface->addr)) == -1) in create_bound_listeners()
681 prettyprint_addr(&iface->addr, daemon->namebuff); in create_bound_listeners()
691 if ((daemon->options & OPT_TFTP) && iface->addr.sa.sa_family == AF_INET && iface->dhcp_ok) in create_bound_listeners()
693 short save = iface->addr.in.sin_port; in create_bound_listeners()
694 iface->addr.in.sin_port = htons(TFTP_PORT); in create_bound_listeners()
698 bind(new->tftpfd, &iface->addr.sa, sa_len(&iface->addr)) == -1) in create_bound_listeners()
700 iface->addr.in.sin_port = save; in create_bound_listeners()
718 union mysockaddr addr; in random_sock() local
722 memset(&addr, 0, sizeof(addr)); in random_sock()
723 addr.sa.sa_family = family; in random_sock()
737 addr.in.sin_addr.s_addr = INADDR_ANY; in random_sock()
738 addr.in.sin_port = port; in random_sock()
740 addr.in.sin_len = sizeof(struct sockaddr_in); in random_sock()
746 addr.in6.sin6_addr = in6addr_any; in random_sock()
747 addr.in6.sin6_port = port; in random_sock()
749 addr.in6.sin6_len = sizeof(struct sockaddr_in6); in random_sock()
754 if (bind(fd, (struct sockaddr *)&addr, sa_len(&addr)) == 0) in random_sock()
768 int local_bind(int fd, union mysockaddr *addr, char *intname, uint32_t mark, int is_tcp) in local_bind() argument
770 union mysockaddr addr_copy = *addr; in local_bind()
798 static struct serverfd *allocate_sfd(union mysockaddr *addr, char *intname, uint32_t mark) in allocate_sfd() argument
809 if (addr->sa.sa_family == AF_INET && in allocate_sfd()
810 addr->in.sin_addr.s_addr == INADDR_ANY && in allocate_sfd()
811 addr->in.sin_port == htons(0)) in allocate_sfd()
815 if (addr->sa.sa_family == AF_INET6 && in allocate_sfd()
816 memcmp(&addr->in6.sin6_addr, &in6addr_any, sizeof(in6addr_any)) == 0 && in allocate_sfd()
817 addr->in6.sin6_port == htons(0)) in allocate_sfd()
824 if (sockaddr_isequal(&sfd->source_addr, addr) && in allocate_sfd()
834 if ((sfd->fd = socket(addr->sa.sa_family, SOCK_DGRAM, 0)) == -1) in allocate_sfd()
840 if (!local_bind(sfd->fd, addr, intname, mark, 0) || !fix_fd(sfd->fd)) in allocate_sfd()
850 sfd->source_addr = *addr; in allocate_sfd()
865 union mysockaddr addr; in pre_allocate_sfds() local
866 memset(&addr, 0, sizeof(addr)); in pre_allocate_sfds()
867 addr.in.sin_family = AF_INET; in pre_allocate_sfds()
868 addr.in.sin_addr.s_addr = INADDR_ANY; in pre_allocate_sfds()
869 addr.in.sin_port = htons(daemon->query_port); in pre_allocate_sfds()
871 addr.in.sin_len = sizeof(struct sockaddr_in); in pre_allocate_sfds()
873 allocate_sfd(&addr, "", 0); in pre_allocate_sfds()
875 memset(&addr, 0, sizeof(addr)); in pre_allocate_sfds()
876 addr.in6.sin6_family = AF_INET6; in pre_allocate_sfds()
877 addr.in6.sin6_addr = in6addr_any; in pre_allocate_sfds()
878 addr.in6.sin6_port = htons(daemon->query_port); in pre_allocate_sfds()
880 addr.in6.sin6_len = sizeof(struct sockaddr_in6); in pre_allocate_sfds()
882 allocate_sfd(&addr, "", 0); in pre_allocate_sfds()
892 prettyprint_addr(&srv->addr, daemon->namebuff); in pre_allocate_sfds()
916 port = prettyprint_addr(&new->addr, daemon->namebuff); in check_servers()
919 if (new->addr.sa.sa_family == AF_INET && in check_servers()
920 new->addr.in.sin_addr.s_addr == 0) in check_servers()
927 if (sockaddr_isequal(&new->addr, &iface->addr)) in check_servers()
1044 if (sockaddr_isequal(&old_iface->addr, &new_iface->addr)) { in set_interfaces()
1055 prettyprint_addr(&old_iface->addr, debug_buff); in set_interfaces()
1074 if(sockaddr_isequal(&old_iface->addr, &new_iface->addr)) { in set_interfaces()
1083 prettyprint_addr(&new_iface->addr, debug_buff); in set_interfaces()
1151 union mysockaddr addr, source_addr; in set_servers() local
1152 memset(&addr, 0, sizeof(addr)); in set_servers()
1155 if (parse_addr(AF_INET, saddr, &addr) == 0) in set_servers()
1157 addr.in.sin_port = htons(NAMESERVER_PORT); in set_servers()
1163 else if (parse_addr(AF_INET6, saddr, &addr) == 0) in set_servers()
1165 addr.in6.sin6_port = htons(NAMESERVER_PORT); in set_servers()
1186 serv->addr = addr; in set_servers()
1250 union mysockaddr addr, source_addr; in reload_servers() local
1260 memset(&addr, 0, sizeof(addr)); in reload_servers()
1263 if (parse_addr(AF_INET, token, &addr) == 0) in reload_servers()
1265 addr.in.sin_port = htons(NAMESERVER_PORT); in reload_servers()
1271 else if (parse_addr(AF_INET6, token, &addr) == 0) in reload_servers()
1273 addr.in6.sin6_port = htons(NAMESERVER_PORT); in reload_servers()
1294 serv->addr = addr; in reload_servers()