pkg/lwip: Use IS_ACTIVE() & NETCONNTYPE_ISIPV6()

This also fixes an issue detected by `tests/lwip_sock_udp` when both IPv4 and
IPv6 are enabled.
This commit is contained in:
Marian Buschsieweke 2020-07-27 20:01:10 +02:00
parent 5be2d082b9
commit 00c44b0924
No known key found for this signature in database
GPG Key ID: 61F64C6599B1539F
2 changed files with 13 additions and 16 deletions

View File

@ -490,13 +490,15 @@ int lwip_sock_get_addr(struct netconn *conn, struct _sock_tl_ep *ep, u8_t local)
) {
return res;
}
#if LWIP_IPV6 && LWIP_IPV4
ep->family = (addr.type == IPADDR_TYPE_V6) ? AF_INET6 : AF_INET;
#elif LWIP_IPV6
ep->family = (conn->type & NETCONN_TYPE_IPV6) ? AF_INET6 : AF_INET;
#elif LWIP_IPV4
ep->family = AF_INET;
#endif
if (NETCONNTYPE_ISIPV6(conn->type)) {
ep->family = AF_INET6;
}
else if (IS_ACTIVE(LWIP_IPV4)) {
ep->family = AF_INET;
}
else {
ep->family = AF_UNSPEC;
}
if (local) {
ep->netif = lwip_sock_bind_addr_to_netif(&addr);
}

View File

@ -120,23 +120,18 @@ ssize_t sock_udp_recv_buf(sock_udp_t *sock, void **data, void **ctx,
if (remote != NULL) {
/* convert remote */
size_t addr_len;
#if LWIP_IPV6
if (sock->base.conn->type & NETCONN_TYPE_IPV6) {
if (NETCONNTYPE_ISIPV6(sock->base.conn->type)) {
addr_len = sizeof(ipv6_addr_t);
remote->family = AF_INET6;
}
else {
#endif
#if LWIP_IPV4
else if (IS_ACTIVE(LWIP_IPV4)) {
addr_len = sizeof(ipv4_addr_t);
remote->family = AF_INET;
#else
}
else {
netbuf_delete(buf);
return -EPROTO;
#endif
#if LWIP_IPV6
}
#endif
#if LWIP_NETBUF_RECVINFO
remote->netif = lwip_sock_bind_addr_to_netif(&buf->toaddr);
#else