|
|
@@ -287,7 +287,13 @@ static int __nio_write(hio_t* io, const void* buf, int len) {
|
|
|
case HIO_TYPE_UDP:
|
|
|
case HIO_TYPE_KCP:
|
|
|
case HIO_TYPE_IP:
|
|
|
+ {
|
|
|
nwrite = sendto(io->fd, buf, len, 0, io->peeraddr, SOCKADDR_LEN(io->peeraddr));
|
|
|
+ if (((sockaddr_u*)io->localaddr)->sin.sin_port == 0) {
|
|
|
+ socklen_t addrlen = sizeof(sockaddr_u);
|
|
|
+ getsockname(io->fd, io->localaddr, &addrlen);
|
|
|
+ }
|
|
|
+ }
|
|
|
break;
|
|
|
default:
|
|
|
nwrite = write(io->fd, buf, len);
|