From 8ebe2c563a39175a7e568bac1de4e8c82b958106 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Wed, 31 May 2023 13:25:30 -0700 Subject: [PATCH] Fix udp sent metric was only incrementing by 1 for each packet sent --- osdep/Phy.hpp | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/osdep/Phy.hpp b/osdep/Phy.hpp index 54f9b7f8b..4a71629cc 100644 --- a/osdep/Phy.hpp +++ b/osdep/Phy.hpp @@ -453,15 +453,33 @@ public: inline bool udpSend(PhySocket *sock,const struct sockaddr *remoteAddress,const void *data,unsigned long len) { PhySocketImpl &sws = *(reinterpret_cast(sock)); + bool sent = false; #if defined(_WIN32) || defined(_WIN64) - int sent = ((long)::sendto(sws.sock,reinterpret_cast(data),len,0,remoteAddress,(remoteAddress->sa_family == AF_INET6) ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in)) == (long)len); - Metrics::udp_send += sent; - return sent; + sent = ((long)::sendto( + sws.sock, + reinterpret_cast(data), + len, + 0, + remoteAddress, + (remoteAddress->sa_family == AF_INET6) ? + sizeof(struct sockaddr_in6) : + sizeof(struct sockaddr_in)) == (long)len); #else - ssize_t sent = ((long)::sendto(sws.sock,data,len,0,remoteAddress,(remoteAddress->sa_family == AF_INET6) ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in)) == (long)len); - Metrics::udp_send += sent; - return sent; + sent = ((long)::sendto( + sws.sock, + data, + len, + 0, + remoteAddress, + (remoteAddress->sa_family == AF_INET6) ? + sizeof(struct sockaddr_in6) : + sizeof(struct sockaddr_in)) == (long)len); #endif + if (sent) { + Metrics::udp_send += len; + } + + return sent; } #ifdef __UNIX_LIKE__