From: Alan T. DeKok Date: Sun, 25 Feb 2024 12:40:16 +0000 (-0500) Subject: it helps to initialize the sockaddr X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=16ba5874720ce812026eeef2d43343217937e6ae;p=thirdparty%2Ffreeradius-server.git it helps to initialize the sockaddr --- diff --git a/src/lib/bio/fd.c b/src/lib/bio/fd.c index 27878bab123..85d58d538f4 100644 --- a/src/lib/bio/fd.c +++ b/src/lib/bio/fd.c @@ -258,11 +258,12 @@ retry: /** Write to a UDP socket where we know our IP * */ -static ssize_t fr_bio_fd_sendto(fr_bio_t *bio, UNUSED void *packet_ctx, const void *buffer, size_t size) +static ssize_t fr_bio_fd_sendto(fr_bio_t *bio, void *packet_ctx, const void *buffer, size_t size) { int tries = 0; ssize_t rcode; fr_bio_fd_t *my = talloc_get_type_abort(bio, fr_bio_fd_t); + fr_bio_fd_packet_ctx_t *addr = fr_bio_fd_packet_ctx(my, packet_ctx); socklen_t salen; struct sockaddr_storage sockaddr; @@ -274,7 +275,7 @@ static ssize_t fr_bio_fd_sendto(fr_bio_t *bio, UNUSED void *packet_ctx, const vo my->info.write_blocked = false; // get destination IP - salen = sizeof(sockaddr); + (void) fr_ipaddr_to_sockaddr(&sockaddr, &salen, &addr->socket.inet.dst_ipaddr, addr->socket.inet.dst_port); retry: rcode = sendto(my->info.socket.fd, buffer, size, 0, (struct sockaddr *) &sockaddr, salen);