Merge pull request #2017 from zerotier/outbound-bytes-fix

This commit is contained in:
Grant Limberg 2023-05-31 13:25:52 -07:00 committed by GitHub
commit 30799dd73f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -453,15 +453,33 @@ public:
inline bool udpSend(PhySocket *sock,const struct sockaddr *remoteAddress,const void *data,unsigned long len) inline bool udpSend(PhySocket *sock,const struct sockaddr *remoteAddress,const void *data,unsigned long len)
{ {
PhySocketImpl &sws = *(reinterpret_cast<PhySocketImpl *>(sock)); PhySocketImpl &sws = *(reinterpret_cast<PhySocketImpl *>(sock));
bool sent = false;
#if defined(_WIN32) || defined(_WIN64) #if defined(_WIN32) || defined(_WIN64)
int sent = ((long)::sendto(sws.sock,reinterpret_cast<const char *>(data),len,0,remoteAddress,(remoteAddress->sa_family == AF_INET6) ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in)) == (long)len); sent = ((long)::sendto(
Metrics::udp_send += sent; sws.sock,
return sent; reinterpret_cast<const char *>(data),
len,
0,
remoteAddress,
(remoteAddress->sa_family == AF_INET6) ?
sizeof(struct sockaddr_in6) :
sizeof(struct sockaddr_in)) == (long)len);
#else #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); sent = ((long)::sendto(
Metrics::udp_send += sent; sws.sock,
return sent; data,
len,
0,
remoteAddress,
(remoteAddress->sa_family == AF_INET6) ?
sizeof(struct sockaddr_in6) :
sizeof(struct sockaddr_in)) == (long)len);
#endif #endif
if (sent) {
Metrics::udp_send += len;
}
return sent;
} }
#ifdef __UNIX_LIKE__ #ifdef __UNIX_LIKE__