From 64cd2582ca423a66bdde48bcc8c5a3d2a5f036b1 Mon Sep 17 00:00:00 2001 From: Nate Karstens Date: Wed, 10 May 2023 09:58:30 -0500 Subject: [PATCH] Improve getsockopt for IP_MULTICAST_LOOP Changes getsockopt handling for IP_MULTICAST_LOOP to test for UDP and use macro. Also fixes debug message. --- src/api/sockets.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/api/sockets.c b/src/api/sockets.c index 6101c889..b0ed8737 100644 --- a/src/api/sockets.c +++ b/src/api/sockets.c @@ -3092,14 +3092,10 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt s, *(u32_t *)optval)); break; case IP_MULTICAST_LOOP: - LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, *optlen, u8_t); - if ((sock->conn->pcb.udp->flags & UDP_FLAGS_MULTICAST_LOOP) != 0) { - *(u8_t *)optval = 1; - } else { - *(u8_t *)optval = 0; - } + LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, *optlen, u8_t, NETCONN_UDP); + *(u8_t *)optval = udp_is_flag_set(sock->conn->pcb.udp, UDP_FLAGS_MULTICAST_LOOP) ? 1 : 0; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_MULTICAST_LOOP) = %d\n", - s, *(int *)optval)); + s, *(u8_t *)optval)); break; #endif /* LWIP_IPV4 && LWIP_MULTICAST_TX_OPTIONS && LWIP_UDP */ default: