commit 70b140c9619bc22ea9cec6b2f22ac25b2314e134
Author: Radek Pazdera <rpazdera(a)redhat.com>
Date: Fri May 25 18:01:58 2012 +0200
multicast: Fix endianess bug
There was a bug with IP addresses in socket conformance tests
that occured on big endian machines.
Reported-By: Hangbin Liu <hliu(a)redhat.com>
Signed-off-by: Radek Pazdera <rpazdera(a)redhat.com>
.../multicast/offline/sockopt_block_source.c | 32 +++++++++----------
test_tools/multicast/offline/sockopt_if.c | 8 ++--
test_tools/multicast/offline/sockopt_membership.c | 18 +++++-----
.../multicast/offline/sockopt_source_membership.c | 30 +++++++++---------
4 files changed, 43 insertions(+), 45 deletions(-)
---
diff --git a/test_tools/multicast/offline/sockopt_block_source.c
b/test_tools/multicast/offline/sockopt_block_source.c
index f79bb48..c60c151 100644
--- a/test_tools/multicast/offline/sockopt_block_source.c
+++ b/test_tools/multicast/offline/sockopt_block_source.c
@@ -27,20 +27,18 @@ void test_block_source()
{
struct ip_mreq_source mreq;
- mreq.imr_multiaddr.s_addr = 0x0100007f;
- mreq.imr_interface.s_addr = 0x0100007f;
- mreq.imr_sourceaddr.s_addr = 0x12345678;
+ mreq.imr_multiaddr.s_addr = inet_addr("127.0.0.1");
+ mreq.imr_interface.s_addr = inet_addr("127.0.0.1");
+ mreq.imr_sourceaddr.s_addr = inet_addr("192.168.0.1");
test_setsockopt_error("IP_BLOCK_SOURCE Bad multicast address",
IP_BLOCK_SOURCE, &mreq, sizeof(mreq), EINVAL);
-
- mreq.imr_multiaddr.s_addr = 0xdeadbeef;
- mreq.imr_interface.s_addr = 0xffffffff;
- mreq.imr_sourceaddr.s_addr = 0x12345678;
+ mreq.imr_multiaddr.s_addr = inet_addr("239.1.2.3");
+ mreq.imr_interface.s_addr = inet_addr("255.255.255.255");
+ mreq.imr_sourceaddr.s_addr = inet_addr("192.168.0.1");
test_setsockopt_error("IP_BLOCK_SOURCE Bad interface",
IP_BLOCK_SOURCE, &mreq, sizeof(mreq), ENODEV);
-
test_setsockopt_error("IP_BLOCK_SOURCE Bad optlen",
IP_BLOCK_SOURCE, &mreq, 2, EINVAL);
}
@@ -49,21 +47,21 @@ void test_unblock_source()
{
struct ip_mreq_source mreq;
- mreq.imr_multiaddr.s_addr = 0x0100007f;
- mreq.imr_interface.s_addr = 0x0100007f;
- mreq.imr_sourceaddr.s_addr = 0x12345678;
+ mreq.imr_multiaddr.s_addr = inet_addr("127.0.0.1");
+ mreq.imr_interface.s_addr = inet_addr("127.0.0.1");
+ mreq.imr_sourceaddr.s_addr = inet_addr("192.168.0.1");
test_setsockopt_error("IP_UNBLOCK_SOURCE Bad multicast address",
IP_UNBLOCK_SOURCE, &mreq, sizeof(mreq), EINVAL);
- mreq.imr_multiaddr.s_addr = 0xdeadbeef;
- mreq.imr_interface.s_addr = 0x0100007f;
- mreq.imr_sourceaddr.s_addr = 0x12345678;
+ mreq.imr_multiaddr.s_addr = inet_addr("239.1.2.3");
+ mreq.imr_interface.s_addr = inet_addr("127.0.0.1");
+ mreq.imr_sourceaddr.s_addr = inet_addr("192.168.0.1");
test_setsockopt_error("IP_UNBLOCK_SOURCE Not a member",
IP_UNBLOCK_SOURCE, &mreq, sizeof(mreq), EINVAL);
- mreq.imr_multiaddr.s_addr = 0xdeadbeef;
- mreq.imr_interface.s_addr = 0xffffffff;
- mreq.imr_sourceaddr.s_addr = 0x12345678;
+ mreq.imr_multiaddr.s_addr = inet_addr("239.1.2.3");
+ mreq.imr_interface.s_addr = inet_addr("255.255.255.255");
+ mreq.imr_sourceaddr.s_addr = inet_addr("192.168.0.1");
test_setsockopt_error("IP_UNBLOCK_SOURCE No device found",
IP_UNBLOCK_SOURCE, &mreq, sizeof(mreq), ENODEV);
diff --git a/test_tools/multicast/offline/sockopt_if.c
b/test_tools/multicast/offline/sockopt_if.c
index ff5bd51..2396629 100644
--- a/test_tools/multicast/offline/sockopt_if.c
+++ b/test_tools/multicast/offline/sockopt_if.c
@@ -32,19 +32,19 @@ void test_if()
test_getsockopt("IP_MULTICAST_IF default value",
IP_MULTICAST_IF, &address, size);
- inet_pton(AF_INET, "127.0.0.1", &address);
+ address.s_addr = inet_addr("127.0.0.1");
test_sockopt_value("IP_MULTICAST_IF set to 127.0.0.1",
IP_MULTICAST_IF, &address, size);
struct ip_mreqn mreqn;
- mreqn.imr_multiaddr.s_addr = 0xdeadbeef;
+ mreqn.imr_multiaddr.s_addr = inet_addr("239.1.2.3");
mreqn.imr_address.s_addr = INADDR_ANY;
mreqn.imr_ifindex = 0;
test_sockopt_value("IP_MULTICAST_IF set to INADDR_ANY",
IP_MULTICAST_IF, &mreqn, sizeof(mreqn));
- mreqn.imr_address.s_addr = 0x0100007f;
+ mreqn.imr_address.s_addr = inet_addr("127.0.0.1");
test_sockopt_value("IP_MULTICAST_IF set to 127.0.0.1",
IP_MULTICAST_IF, &mreqn, sizeof(mreqn));
@@ -53,7 +53,7 @@ void test_if()
test_setsockopt_error("IP_MULTICAST_IF bad optlen",
IP_MULTICAST_IF, &address, 3, EINVAL);
- inet_pton(AF_INET, "238.0.10.0", &address);
+ address.s_addr = inet_addr("238.0.10.0");
test_setsockopt_error("IP_MULTICAST_IF address 238.0.10.0",
IP_MULTICAST_IF, &address,
sizeof(address), EADDRNOTAVAIL);
diff --git a/test_tools/multicast/offline/sockopt_membership.c
b/test_tools/multicast/offline/sockopt_membership.c
index b8612f7..4f8adc3 100644
--- a/test_tools/multicast/offline/sockopt_membership.c
+++ b/test_tools/multicast/offline/sockopt_membership.c
@@ -26,7 +26,7 @@
void test_add_membership()
{
struct ip_mreq mreq;
- mreq.imr_multiaddr.s_addr = 0x0100007f;
+ mreq.imr_multiaddr.s_addr = inet_addr("127.0.0.1");
struct ip_mreqn mreqn;
test_setsockopt_error("IP_ADD_MEMBERSHIP Bad multicast address",
@@ -35,8 +35,8 @@ void test_add_membership()
test_setsockopt_error("IP_ADD_MEMBERSHIP Bad optlen",
IP_ADD_MEMBERSHIP, &mreq, 5, EINVAL);
- mreqn.imr_multiaddr.s_addr = 0xdeadbeef;
- mreqn.imr_address.s_addr = 0xffffffff;
+ mreqn.imr_multiaddr.s_addr = inet_addr("239.1.2.3");
+ mreqn.imr_address.s_addr = inet_addr("255.255.255.255");
mreqn.imr_ifindex = 500;
test_setsockopt_error("IP_ADD_MEMBERSHIP No device found",
IP_ADD_MEMBERSHIP, &mreqn, sizeof(mreqn), ENODEV);
@@ -45,8 +45,8 @@ void test_add_membership()
void test_drop_membership()
{
struct ip_mreq mreq;
- mreq.imr_multiaddr.s_addr = 0x0100007f;
- mreq.imr_interface.s_addr = 0x0100007f;
+ mreq.imr_multiaddr.s_addr = inet_addr("127.0.0.1");
+ mreq.imr_interface.s_addr = inet_addr("127.0.0.1");
struct ip_mreqn mreqn;
test_setsockopt_error("IP_DROP_MEMBERSHIP Bad optlen",
@@ -54,13 +54,13 @@ void test_drop_membership()
test_setsockopt_error("IP_DROP_MEMBERSHIP Bad multicast address",
IP_DROP_MEMBERSHIP, &mreq, sizeof(mreq), EADDRNOTAVAIL);
- mreq.imr_multiaddr.s_addr = 0xdeadbeef;
- mreq.imr_interface.s_addr = 0x0100007f;
+ mreq.imr_multiaddr.s_addr = inet_addr("239.1.2.3");
+ mreq.imr_interface.s_addr = inet_addr("127.0.0.1");
test_setsockopt_error("IP_DROP_MEMBERSHIP Not a member",
IP_DROP_MEMBERSHIP, &mreq, sizeof(mreq), EADDRNOTAVAIL);
- mreqn.imr_multiaddr.s_addr = 0xdeadbeef;
- mreqn.imr_address.s_addr = 0xffffffff;
+ mreqn.imr_multiaddr.s_addr = inet_addr("239.1.2.3");
+ mreqn.imr_address.s_addr = inet_addr("255.255.255.255");
mreqn.imr_ifindex = 500;
test_setsockopt_error("IP_DROP_MEMBERSHIP No device found",
IP_DROP_MEMBERSHIP, &mreqn, sizeof(mreqn), ENODEV);
diff --git a/test_tools/multicast/offline/sockopt_source_membership.c
b/test_tools/multicast/offline/sockopt_source_membership.c
index a43b43c..d589dcd 100644
--- a/test_tools/multicast/offline/sockopt_source_membership.c
+++ b/test_tools/multicast/offline/sockopt_source_membership.c
@@ -29,16 +29,16 @@ void test_add_source_membership()
{
struct ip_mreq_source mreq;
- mreq.imr_multiaddr.s_addr = 0x0100007f;
- mreq.imr_interface.s_addr = 0x0100007f;
- mreq.imr_sourceaddr.s_addr = 0x12345678;
+ mreq.imr_multiaddr.s_addr = inet_addr("127.0.0.1");
+ mreq.imr_interface.s_addr = inet_addr("127.0.0.1");
+ mreq.imr_sourceaddr.s_addr = inet_addr("192.168.0.1");
test_setsockopt_error("IP_ADD_SOURCE_MEMBERSHIP Bad multicast address",
IP_ADD_SOURCE_MEMBERSHIP, &mreq, sizeof(mreq), EINVAL);
- mreq.imr_multiaddr.s_addr = 0xdeadbeef;
- mreq.imr_interface.s_addr = 0xffffffff;
- mreq.imr_sourceaddr.s_addr = 0x12345678;
+ mreq.imr_multiaddr.s_addr = inet_addr("239.1.2.3");
+ mreq.imr_interface.s_addr = inet_addr("255.255.255.255");
+ mreq.imr_sourceaddr.s_addr = inet_addr("192.168.0.1");
test_setsockopt_error("IP_ADD_SOURCE_MEMBERSHIP Bad interface",
IP_ADD_SOURCE_MEMBERSHIP, &mreq, sizeof(mreq), ENODEV);
@@ -51,21 +51,21 @@ void test_drop_source_membership()
{
struct ip_mreq_source mreq;
- mreq.imr_multiaddr.s_addr = 0x0100007f;
- mreq.imr_interface.s_addr = 0x0100007f;
- mreq.imr_sourceaddr.s_addr = 0x12345678;
+ mreq.imr_multiaddr.s_addr = inet_addr("127.0.0.1");
+ mreq.imr_interface.s_addr = inet_addr("127.0.0.1");
+ mreq.imr_sourceaddr.s_addr = inet_addr("192.168.0.1");
test_setsockopt_error("IP_DROP_SOURCE_MEMBERSHIP Bad multicast address",
IP_DROP_SOURCE_MEMBERSHIP, &mreq, sizeof(mreq), EINVAL);
- mreq.imr_multiaddr.s_addr = 0xdeadbeef;
- mreq.imr_interface.s_addr = 0x0100007f;
- mreq.imr_sourceaddr.s_addr = 0x12345678;
+ mreq.imr_multiaddr.s_addr = inet_addr("239.1.2.3");
+ mreq.imr_interface.s_addr = inet_addr("127.0.0.1");
+ mreq.imr_sourceaddr.s_addr = inet_addr("192.168.0.1");
test_setsockopt_error("IP_DROP_SOURCE_MEMBERSHIP Not a member",
IP_DROP_SOURCE_MEMBERSHIP, &mreq, sizeof(mreq), EINVAL);
- mreq.imr_multiaddr.s_addr = 0xdeadbeef;
- mreq.imr_interface.s_addr = 0xffffffff;
- mreq.imr_sourceaddr.s_addr = 0x12345678;
+ mreq.imr_multiaddr.s_addr = inet_addr("239.1.2.3");
+ mreq.imr_interface.s_addr = inet_addr("255.255.255.255");
+ mreq.imr_sourceaddr.s_addr = inet_addr("192.168.0.1");
test_setsockopt_error("IP_DROP_SOURCE_MEMBERSHIP No device found",
IP_DROP_SOURCE_MEMBERSHIP, &mreq, sizeof(mreq), ENODEV);