From ef6cc09669c471a75ddf18c575f4ef9952890072 Mon Sep 17 00:00:00 2001 From: maosiping Date: Thu, 2 Dec 2021 17:58:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=93=9D=E7=89=99=E7=BD=91=E7=BB=9C=E4=BB=A3?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: maosiping --- src/api/sockets.c | 6 +-- .../distributed_net/distributed_net_core.c | 40 ++++++++++--------- src/core/distributed_net/udp_transmit.c | 4 +- .../distributed_net/distributed_net_core.h | 6 +-- .../lwip/distributed_net/udp_transmit.h | 4 +- 5 files changed, 31 insertions(+), 29 deletions(-) diff --git a/src/api/sockets.c b/src/api/sockets.c index 85d93c0..206cce5 100644 --- a/src/api/sockets.c +++ b/src/api/sockets.c @@ -1437,7 +1437,7 @@ lwip_send(int s, const void *data, size_t size, int flags) if (NETCONNTYPE_GROUP(netconn_type(sock->conn)) != NETCONN_TCP) { #if (LWIP_UDP || LWIP_RAW) done_socket(sock); -#if LWIP_ENABLE_DISTRIBUTED_NET +#if LWIP_ENABLE_DISTRIBUTED_NET && LWIP_USE_GET_HOST_BY_NAME_EXTERNAL return lwip_sendto_internal(s, data, size, flags, NULL, 0); #else return lwip_sendto(s, data, size, flags, NULL, 0); @@ -1465,7 +1465,7 @@ lwip_send(int s, const void *data, size_t size, int flags) ssize_t lwip_sendmsg(int s, const struct msghdr *msg, int flags) { -#if LWIP_ENABLE_DISTRIBUTED_NET +#if LWIP_ENABLE_DISTRIBUTED_NET && LWIP_USE_GET_HOST_BY_NAME_EXTERNAL && LWIP_DISTRIBUTED_NET_ENABLE_SENDMSG if (!is_distributed_net_enabled()) { return lwip_sendmsg_internal(s, msg, flags); } @@ -1640,7 +1640,7 @@ ssize_t lwip_sendto(int s, const void *data, size_t size, int flags, const struct sockaddr *to, socklen_t tolen) { -#if LWIP_ENABLE_DISTRIBUTED_NET +#if LWIP_ENABLE_DISTRIBUTED_NET && LWIP_USE_GET_HOST_BY_NAME_EXTERNAL if (!is_distributed_net_enabled()) { return lwip_sendto_internal(s, data, size, flags, to, tolen); } diff --git a/src/core/distributed_net/distributed_net_core.c b/src/core/distributed_net/distributed_net_core.c index 8e9c5ad..eb98e1c 100644 --- a/src/core/distributed_net/distributed_net_core.c +++ b/src/core/distributed_net/distributed_net_core.c @@ -71,6 +71,25 @@ int distributed_net_connect(int sock, const struct sockaddr *addr, socklen_t add return 0; } +int distributed_net_close(int sock) +{ + CHECK_PARA(SOCKET_TO_INDEX(sock) >= 0 && SOCKET_TO_INDEX(sock) < NUM_SOCKETS, EBADF); + + reset_distributed_net_socket(sock); + return lwip_close_internal(sock); +} + +#if LWIP_USE_GET_HOST_BY_NAME_EXTERNAL +typedef union { + struct sockaddr sa; +#if LWIP_IPV6 + struct sockaddr_in6 sin6; +#endif /* LWIP_IPV6 */ +#if LWIP_IPV4 + struct sockaddr_in sin; +#endif /* LWIP_IPV4 */ +} aligned_sockaddr; + ssize_t distributed_net_sendto(int sock, const void *buf, size_t buf_len, int flags, const struct sockaddr *addr, socklen_t addr_len) { @@ -112,6 +131,7 @@ ssize_t distributed_net_sendto(int sock, const void *buf, size_t buf_len, int fl return ret > 0 ? UDP_PAYLOAD_LEN(ret) : -1; } +#if LWIP_DISTRIBUTED_NET_ENABLE_SENDMSG ssize_t distributed_net_sendmsg(int sock, const struct msghdr *hdr, int flags) { CHECK_PARA(SOCKET_TO_INDEX(sock) >= 0 && SOCKET_TO_INDEX(sock) < NUM_SOCKETS, EBADF); @@ -155,25 +175,7 @@ ssize_t distributed_net_sendmsg(int sock, const struct msghdr *hdr, int flags) ssize_t ret = udp_transmit_sendmsg(sock, hdr); return ret > 0 ? UDP_PAYLOAD_LEN(ret) : -1; } - -int distributed_net_close(int sock) -{ - CHECK_PARA(SOCKET_TO_INDEX(sock) >= 0 && SOCKET_TO_INDEX(sock) < NUM_SOCKETS, EBADF); - - reset_distributed_net_socket(sock); - return lwip_close_internal(sock); -} - -#if LWIP_USE_GET_HOST_BY_NAME_EXTERNAL -typedef union { - struct sockaddr sa; -#if LWIP_IPV6 - struct sockaddr_in6 sin6; -#endif /* LWIP_IPV6 */ -#if LWIP_IPV4 - struct sockaddr_in sin; -#endif /* LWIP_IPV4 */ -} aligned_sockaddr; +#endif /* LWIP_DISTRIBUTED_NET_ENABLE_SENDMSG */ ssize_t distributed_net_recvfrom(int sock, void *buf, size_t buf_len, int flags, struct sockaddr *from, socklen_t *from_len) diff --git a/src/core/distributed_net/udp_transmit.c b/src/core/distributed_net/udp_transmit.c index bfce40c..84337e4 100644 --- a/src/core/distributed_net/udp_transmit.c +++ b/src/core/distributed_net/udp_transmit.c @@ -29,7 +29,7 @@ #include "lwip/opt.h" -#if LWIP_ENABLE_DISTRIBUTED_NET +#if LWIP_ENABLE_DISTRIBUTED_NET && LWIP_USE_GET_HOST_BY_NAME_EXTERNAL #include "lwip/distributed_net/udp_transmit.h" @@ -131,4 +131,4 @@ ssize_t udp_transmit_sendmsg(int sock, const struct msghdr *hdr) return ret; } -#endif /* LWIP_ENABLE_DISTRIBUTED_NET */ +#endif /* LWIP_ENABLE_DISTRIBUTED_NET && LWIP_USE_GET_HOST_BY_NAME_EXTERNAL */ diff --git a/src/include/lwip/distributed_net/distributed_net_core.h b/src/include/lwip/distributed_net/distributed_net_core.h index 48d2044..ff53582 100644 --- a/src/include/lwip/distributed_net/distributed_net_core.h +++ b/src/include/lwip/distributed_net/distributed_net_core.h @@ -59,14 +59,14 @@ typedef struct tcp_connect_data { int distributed_net_connect(int sock, const struct sockaddr *addr, socklen_t addr_len); +int distributed_net_close(int sock); + +#if LWIP_USE_GET_HOST_BY_NAME_EXTERNAL ssize_t distributed_net_sendto(int sock, const void *buf, size_t buf_len, int flags, const struct sockaddr *addr, socklen_t addr_len); ssize_t distributed_net_sendmsg(int sock, const struct msghdr *hdr, int flags); -int distributed_net_close(int sock); - -#if LWIP_USE_GET_HOST_BY_NAME_EXTERNAL ssize_t distributed_net_recvfrom(int sock, void *buf, size_t buf_len, int flags, struct sockaddr *from, socklen_t *from_len); #endif /* LWIP_USE_GET_HOST_BY_NAME_EXTERNAL */ diff --git a/src/include/lwip/distributed_net/udp_transmit.h b/src/include/lwip/distributed_net/udp_transmit.h index b2f1244..3a2972e 100644 --- a/src/include/lwip/distributed_net/udp_transmit.h +++ b/src/include/lwip/distributed_net/udp_transmit.h @@ -32,7 +32,7 @@ #include "lwip/opt.h" -#if LWIP_ENABLE_DISTRIBUTED_NET +#if LWIP_ENABLE_DISTRIBUTED_NET && LWIP_USE_GET_HOST_BY_NAME_EXTERNAL #include "lwip/distributed_net/distributed_net.h" #include "lwip/sockets.h" @@ -53,6 +53,6 @@ ssize_t udp_transmit_sendto(int sock, const void *buf, size_t buf_len, const str ssize_t udp_transmit_sendmsg(int sock, const struct msghdr *hdr); -#endif /* LWIP_ENABLE_DISTRIBUTED_NET */ +#endif /* LWIP_ENABLE_DISTRIBUTED_NET && LWIP_USE_GET_HOST_BY_NAME_EXTERNAL */ #endif /* LWIP_HDR_UDP_TRANSMIT_H */ -- GitLab