TEST(CommonIPAddr, ParseNetwork_Empty)
{
- struct sockaddr network;
+ struct sockaddr_storage network;
unsigned int prefix_len;
bool ok;
TEST(CommonIPAddr, ParseNetwork_Bad_Junk)
{
- struct sockaddr network;
+ struct sockaddr_storage network;
unsigned int prefix_len;
bool ok;
TEST(CommonIPAddr, ParseNetwork_Bad_SlashNum)
{
- struct sockaddr network;
+ struct sockaddr_storage network;
unsigned int prefix_len;
bool ok;
- ok = parse_network("/24", (struct sockaddr*)&network, &prefix_len);
+ ok = parse_network("/24", &network, &prefix_len);
ASSERT_EQ(ok, false);
}
TEST(CommonIPAddr, ParseNetwork_Bad_Slash)
{
- struct sockaddr network;
+ struct sockaddr_storage network;
unsigned int prefix_len;
bool ok;
- ok = parse_network("/", (struct sockaddr*)&network, &prefix_len);
+ ok = parse_network("/", &network, &prefix_len);
ASSERT_EQ(ok, false);
}
TEST(CommonIPAddr, ParseNetwork_Bad_IPv4)
{
- struct sockaddr network;
+ struct sockaddr_storage network;
unsigned int prefix_len;
bool ok;
TEST(CommonIPAddr, ParseNetwork_Bad_IPv4Slash)
{
- struct sockaddr network;
+ struct sockaddr_storage network;
unsigned int prefix_len;
bool ok;
TEST(CommonIPAddr, ParseNetwork_Bad_IPv4SlashNegative)
{
- struct sockaddr network;
+ struct sockaddr_storage network;
unsigned int prefix_len;
bool ok;
TEST(CommonIPAddr, ParseNetwork_Bad_IPv4SlashJunk)
{
- struct sockaddr network;
+ struct sockaddr_storage network;
unsigned int prefix_len;
bool ok;
TEST(CommonIPAddr, ParseNetwork_Bad_IPv6)
{
- struct sockaddr network;
+ struct sockaddr_storage network;
unsigned int prefix_len;
bool ok;
TEST(CommonIPAddr, ParseNetwork_Bad_IPv6Slash)
{
- struct sockaddr network;
+ struct sockaddr_storage network;
unsigned int prefix_len;
bool ok;
TEST(CommonIPAddr, ParseNetwork_Bad_IPv6SlashNegative)
{
- struct sockaddr network;
+ struct sockaddr_storage network;
unsigned int prefix_len;
bool ok;
TEST(CommonIPAddr, ParseNetwork_Bad_IPv6SlashJunk)
{
- struct sockaddr network;
+ struct sockaddr_storage network;
unsigned int prefix_len;
bool ok;
TEST(CommonIPAddr, ParseNetwork_IPv4_0)
{
struct sockaddr_in network;
+ struct sockaddr_storage net_storage;
unsigned int prefix_len;
bool ok;
- ok = parse_network("123.123.123.123/0", (struct sockaddr*)&network, &prefix_len);
+ ok = parse_network("123.123.123.123/0", &net_storage, &prefix_len);
+ network = *(struct sockaddr_in *) &net_storage;
ASSERT_EQ(ok, true);
ASSERT_EQ(0U, prefix_len);
ASSERT_EQ(AF_INET, network.sin_family);
TEST(CommonIPAddr, ParseNetwork_IPv4_13)
{
struct sockaddr_in network;
+ struct sockaddr_storage net_storage;
unsigned int prefix_len;
bool ok;
- ok = parse_network("123.123.123.123/13", (struct sockaddr*)&network, &prefix_len);
+ ok = parse_network("123.123.123.123/13", &net_storage, &prefix_len);
+ network = *(struct sockaddr_in *) &net_storage;
ASSERT_EQ(ok, true);
ASSERT_EQ(13U, prefix_len);
ASSERT_EQ(AF_INET, network.sin_family);
TEST(CommonIPAddr, ParseNetwork_IPv4_32)
{
struct sockaddr_in network;
+ struct sockaddr_storage net_storage;
unsigned int prefix_len;
bool ok;
- ok = parse_network("123.123.123.123/32", (struct sockaddr*)&network, &prefix_len);
+ ok = parse_network("123.123.123.123/32", &net_storage, &prefix_len);
+ network = *(struct sockaddr_in *) &net_storage;
ASSERT_EQ(ok, true);
ASSERT_EQ(32U, prefix_len);
ASSERT_EQ(AF_INET, network.sin_family);
TEST(CommonIPAddr, ParseNetwork_IPv4_42)
{
struct sockaddr_in network;
+ struct sockaddr_storage net_storage;
unsigned int prefix_len;
bool ok;
- ok = parse_network("123.123.123.123/42", (struct sockaddr*)&network, &prefix_len);
+ ok = parse_network("123.123.123.123/42", &net_storage, &prefix_len);
+ network = *(struct sockaddr_in *) &net_storage;
ASSERT_EQ(ok, true);
ASSERT_EQ(42U, prefix_len);
ASSERT_EQ(AF_INET, network.sin_family);
TEST(CommonIPAddr, ParseNetwork_IPv6_0)
{
struct sockaddr_in6 network;
+ struct sockaddr_storage net_storage;
unsigned int prefix_len;
bool ok;
- ok = parse_network("2001:1234:5678:90ab::dead:beef/0", (struct sockaddr*)&network, &prefix_len);
+ ok = parse_network("2001:1234:5678:90ab::dead:beef/0", &net_storage, &prefix_len);
+ network = *(struct sockaddr_in6 *) &net_storage;
ASSERT_EQ(ok, true);
ASSERT_EQ(0U, prefix_len);
ASSERT_EQ(AF_INET6, network.sin6_family);
TEST(CommonIPAddr, ParseNetwork_IPv6_67)
{
struct sockaddr_in6 network;
+ struct sockaddr_storage net_storage;
unsigned int prefix_len;
bool ok;
- ok = parse_network("2001:1234:5678:90ab::dead:beef/67", (struct sockaddr*)&network, &prefix_len);
+ ok = parse_network("2001:1234:5678:90ab::dead:beef/67", &net_storage, &prefix_len);
+ network = *(struct sockaddr_in6 *) &net_storage;
ASSERT_EQ(ok, true);
ASSERT_EQ(67U, prefix_len);
ASSERT_EQ(AF_INET6, network.sin6_family);
TEST(CommonIPAddr, ParseNetwork_IPv6_128)
{
struct sockaddr_in6 network;
+ struct sockaddr_storage net_storage;
unsigned int prefix_len;
bool ok;
- ok = parse_network("2001:1234:5678:90ab::dead:beef/128", (struct sockaddr*)&network, &prefix_len);
+ ok = parse_network("2001:1234:5678:90ab::dead:beef/128", &net_storage, &prefix_len);
+ network = *(struct sockaddr_in6 *) &net_storage;
ASSERT_EQ(ok, true);
ASSERT_EQ(128U, prefix_len);
ASSERT_EQ(AF_INET6, network.sin6_family);
TEST(CommonIPAddr, ParseNetwork_IPv6_9000)
{
struct sockaddr_in6 network;
+ struct sockaddr_storage net_storage;
unsigned int prefix_len;
bool ok;
- ok = parse_network("2001:1234:5678:90ab::dead:beef/9000", (struct sockaddr*)&network, &prefix_len);
+ ok = parse_network("2001:1234:5678:90ab::dead:beef/9000", &net_storage, &prefix_len);
+ network = *(struct sockaddr_in6 *) &net_storage;
ASSERT_EQ(ok, true);
ASSERT_EQ(9000U, prefix_len);
ASSERT_EQ(AF_INET6, network.sin6_family);