Changeset View
Changeset View
Standalone View
Standalone View
usr.sbin/rpcbind/tests/addrmerge_test.c
Show First 20 Lines • Show All 251 Lines • ▼ Show 20 Lines | mock_tun0(void) | ||||
mock_ifaddr4("tun0", "192.0.2.5", "255.255.255.255", "192.0.2.6", | mock_ifaddr4("tun0", "192.0.2.5", "255.255.255.255", "192.0.2.6", | ||||
IFF_UP | IFF_RUNNING | IFF_POINTOPOINT | IFF_MULTICAST, false); | IFF_UP | IFF_RUNNING | IFF_POINTOPOINT | IFF_MULTICAST, false); | ||||
mock_ifaddr6("tun0", "2001:db8::5", | mock_ifaddr6("tun0", "2001:db8::5", | ||||
"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", | "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", | ||||
"2001:db8::6", | "2001:db8::6", | ||||
IFF_UP | IFF_RUNNING | IFF_POINTOPOINT | IFF_MULTICAST, 0, false); | IFF_UP | IFF_RUNNING | IFF_POINTOPOINT | IFF_MULTICAST, 0, false); | ||||
} | } | ||||
static void | |||||
mock_mlxen0(void) | |||||
{ | |||||
mock_ifaddr4("mlxen0", "192.0.3.1", "255.255.255.128", "192.0.3.127", | |||||
IFF_UP | IFF_BROADCAST | IFF_RUNNING | IFF_SIMPLEX | IFF_MULTICAST, | |||||
false); | |||||
/* Setting link local address before ipv6 address*/ | |||||
mock_ifaddr6("mlxen0", "fe80::4", "ffff:ffff:ffff:ffff::", | |||||
"fe80::ffff:ffff:ffff:ffff", | |||||
IFF_UP | IFF_BROADCAST | IFF_RUNNING | IFF_SIMPLEX | IFF_MULTICAST, | |||||
3, false); | |||||
mock_ifaddr6("mlxen0", "2001:db8::7", "ffff:ffff:ffff:ffff::", | |||||
"2001:db8::ffff:ffff:ffff:ffff", | |||||
IFF_UP | IFF_BROADCAST | IFF_RUNNING | IFF_SIMPLEX | IFF_MULTICAST, | |||||
0, false); | |||||
} | |||||
/* Stub rpcbind functions */ | /* Stub rpcbind functions */ | ||||
int | int | ||||
listen_addr(const struct sockaddr *sa) | listen_addr(const struct sockaddr *sa) | ||||
{ | { | ||||
int i; | int i; | ||||
if (bind_address_count == 0) | if (bind_address_count == 0) | ||||
▲ Show 20 Lines • Show All 562 Lines • ▼ Show 20 Lines | ATF_TC_BODY(addrmerge_recvdstaddr6_rev, tc) | ||||
maddr = do_addrmerge6("2001:db8::2.3.46"); | maddr = do_addrmerge6("2001:db8::2.3.46"); | ||||
/* We must return the address on which the request was received */ | /* We must return the address on which the request was received */ | ||||
ATF_REQUIRE(maddr != NULL); | ATF_REQUIRE(maddr != NULL); | ||||
ATF_CHECK_STREQ("2001:db8::2.3.46", maddr); | ATF_CHECK_STREQ("2001:db8::2.3.46", maddr); | ||||
free(maddr); | free(maddr); | ||||
} | } | ||||
ATF_TC_WITHOUT_HEAD(addrmerge_ipv6_other_subnet); | |||||
ATF_TC_BODY(addrmerge_ipv6_other_subnet, tc) | |||||
{ | |||||
char *maddr; | |||||
/* getifaddrs will return link local before normal ipv6 */ | |||||
mock_lo0(); | |||||
mock_mlxen0(); | |||||
maddr = do_addrmerge6("2001:db8:1::1.3.46"); | |||||
/* We must return the closest ipv6 address*/ | |||||
ATF_REQUIRE(maddr != NULL); | |||||
ATF_CHECK_STREQ("2001:db8::7.3.46", maddr); | |||||
free(maddr); | |||||
} | |||||
#endif /* INET6 */ | #endif /* INET6 */ | ||||
ATF_TP_ADD_TCS(tp) | ATF_TP_ADD_TCS(tp) | ||||
{ | { | ||||
ATF_TP_ADD_TC(tp, addrmerge_noifaddrs); | ATF_TP_ADD_TC(tp, addrmerge_noifaddrs); | ||||
ATF_TP_ADD_TC(tp, addrmerge_localhost_only); | ATF_TP_ADD_TC(tp, addrmerge_localhost_only); | ||||
ATF_TP_ADD_TC(tp, addrmerge_singlehomed); | ATF_TP_ADD_TC(tp, addrmerge_singlehomed); | ||||
Show All 13 Lines | #ifdef INET6 | ||||
ATF_TP_ADD_TC(tp, addrmerge_point2point6); | ATF_TP_ADD_TC(tp, addrmerge_point2point6); | ||||
ATF_TP_ADD_TC(tp, addrmerge_point2point6_rev); | ATF_TP_ADD_TC(tp, addrmerge_point2point6_rev); | ||||
ATF_TP_ADD_TC(tp, addrmerge_bindip6); | ATF_TP_ADD_TC(tp, addrmerge_bindip6); | ||||
ATF_TP_ADD_TC(tp, addrmerge_bindip6_rev); | ATF_TP_ADD_TC(tp, addrmerge_bindip6_rev); | ||||
ATF_TP_ADD_TC(tp, addrmerge_ipv6_linklocal); | ATF_TP_ADD_TC(tp, addrmerge_ipv6_linklocal); | ||||
ATF_TP_ADD_TC(tp, addrmerge_ipv6_linklocal_rev); | ATF_TP_ADD_TC(tp, addrmerge_ipv6_linklocal_rev); | ||||
ATF_TP_ADD_TC(tp, addrmerge_recvdstaddr6); | ATF_TP_ADD_TC(tp, addrmerge_recvdstaddr6); | ||||
ATF_TP_ADD_TC(tp, addrmerge_recvdstaddr6_rev); | ATF_TP_ADD_TC(tp, addrmerge_recvdstaddr6_rev); | ||||
ATF_TP_ADD_TC(tp, addrmerge_ipv6_other_subnet); | |||||
#endif | #endif | ||||
return (atf_no_error()); | return (atf_no_error()); | ||||
} | } |