commit 70b140c9619bc22ea9cec6b2f22ac25b2314e134 Author: Radek Pazdera rpazdera@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@redhat.com Signed-off-by: Radek Pazdera rpazdera@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);
lnst-developers@lists.fedorahosted.org