On Mon, 5 Dec 2022 19:14:22 +1100
David Gibson <david(a)gibson.dropbear.id.au> wrote:
udp_splice_namebuf is now used only for spliced
sending, and so it only
ever populated with the localhost address, either IPv4 or IPv6. So,
replace the awkward initialization in udp_sock_handler_splice() with
statically initialized versions for IPv4 and IPv6. We then just need to
update the port number in udp_sock_handler_splice().
Signed-off-by: David Gibson <david(a)gibson.dropbear.id.au>
---
udp.c | 40 ++++++++++++++++++----------------------
util.h | 7 +++++++
2 files changed, 25 insertions(+), 22 deletions(-)
diff --git a/udp.c b/udp.c
index 24fa984..7c601cc 100644
--- a/udp.c
+++ b/udp.c
@@ -232,11 +232,18 @@ static struct mmsghdr udp4_l2_mh_tap [UDP_MAX_FRAMES];
static struct mmsghdr udp6_l2_mh_tap [UDP_MAX_FRAMES];
/* recvmmsg()/sendmmsg() data for "spliced" connections */
-static struct sockaddr_storage udp_splice_namebuf;
-
static struct iovec udp4_iov_splice [UDP_MAX_FRAMES];
static struct iovec udp6_iov_splice [UDP_MAX_FRAMES];
+static struct sockaddr_in udp_localname4 = {
+ .sin_family = AF_INET,
+ .sin_addr = IN4ADDR_LOOPBACK_INIT,
+};
+static struct sockaddr_in6 udp_localname6 = {
+ .sin6_family = AF_INET6,
+ .sin6_addr = IN6ADDR_LOOPBACK_INIT,
+};
Nit, not a strong preference and not worth re-spinning just for this: I
think udp4_localname and udp6_localname would be more consistent with
everything else here, hence easier to type without double checking.
Good point. I'll change it only if I need a respin for other reasons.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!