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__