Skip to content

Commit 3fcf06d

Browse files
Cristib05jhedberg
authored andcommitted
tests: net: socket: Fix recv pktinfo ancillary test for recvmsg()
Fixed setsockopt based on socket family and added correct cmsg_type for parsing ancillary data. Signed-off-by: Cristian Bulacu <[email protected]>
1 parent 4f644d8 commit 3fcf06d

File tree

1 file changed

+6
-2
lines changed
  • tests/net/socket/udp/src

1 file changed

+6
-2
lines changed

tests/net/socket/udp/src/main.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1806,7 +1806,11 @@ static void run_ancillary_recvmsg_test(int client_sock,
18061806

18071807
opt = 1;
18081808
optlen = sizeof(opt);
1809-
rv = zsock_setsockopt(server_sock, IPPROTO_IP, IP_PKTINFO, &opt, optlen);
1809+
if (server_addr->sa_family == AF_INET) {
1810+
rv = zsock_setsockopt(server_sock, IPPROTO_IP, IP_PKTINFO, &opt, optlen);
1811+
} else {
1812+
rv = zsock_setsockopt(server_sock, IPPROTO_IPV6, IPV6_RECVPKTINFO, &opt, optlen);
1813+
}
18101814
zassert_equal(rv, 0, "setsockopt failed (%d)", -errno);
18111815

18121816
memset(&cmsgbuf, 0, sizeof(cmsgbuf));
@@ -1840,7 +1844,7 @@ static void run_ancillary_recvmsg_test(int client_sock,
18401844
}
18411845

18421846
if (cmsg->cmsg_level == IPPROTO_IPV6 &&
1843-
cmsg->cmsg_type == IPV6_RECVPKTINFO) {
1847+
cmsg->cmsg_type == IPV6_PKTINFO) {
18441848
net_ipaddr_copy(&net_sin6(&addr)->sin6_addr,
18451849
&((struct in6_pktinfo *)CMSG_DATA(cmsg))->ipi6_addr);
18461850
ifindex = ((struct in6_pktinfo *)CMSG_DATA(cmsg))->ipi6_ifindex;

0 commit comments

Comments
 (0)