From 0939068492b5286a2e2bfe838cb54d760e7bcbd9 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Thu, 12 Sep 2024 00:00:50 -0400 Subject: [PATCH] chore(connlib): report UDP socket buffer sizes (#6564) The actual size of the send and receive buffers is OS-dependent. To aid debugging with customer-submitted logs, we now print the size of the send and receive buffers of each UDP socket. --- rust/socket-factory/src/lib.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/rust/socket-factory/src/lib.rs b/rust/socket-factory/src/lib.rs index ffdcbf053..c8ebd43f7 100644 --- a/rust/socket-factory/src/lib.rs +++ b/rust/socket-factory/src/lib.rs @@ -8,7 +8,6 @@ use std::{ task::{ready, Context, Poll}, }; -use socket2::SockAddr; use std::any::Any; use std::collections::hash_map::Entry; use std::pin::Pin; @@ -32,8 +31,8 @@ pub fn tcp(addr: &SocketAddr) -> io::Result { }) } -pub fn udp(addr: &SocketAddr) -> io::Result { - let addr: SockAddr = (*addr).into(); +pub fn udp(std_addr: &SocketAddr) -> io::Result { + let addr = socket2::SockAddr::from(*std_addr); let socket = socket2::Socket::new(addr.domain(), socket2::Type::DGRAM, None)?; // Note: for AF_INET sockets IPV6_V6ONLY is not a valid flag @@ -44,6 +43,11 @@ pub fn udp(addr: &SocketAddr) -> io::Result { socket.set_nonblocking(true)?; socket.bind(&addr)?; + let send_buf_size = socket.send_buffer_size()?; + let recv_buf_size = socket.recv_buffer_size()?; + + tracing::info!(addr = %std_addr, %send_buf_size, %recv_buf_size, "Created new UDP socket"); + let socket = std::net::UdpSocket::from(socket); let socket = tokio::net::UdpSocket::try_from(socket)?; let socket = UdpSocket::new(socket)?;