Skip to content

Commit 73a481e

Browse files
committed
FIX: TCP connection not working on Haiku OS
resolves: Oldes/Rebol-issues#2540
1 parent d6457b3 commit 73a481e

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/os/dev-net.c

+11-3
Original file line numberDiff line numberDiff line change
@@ -473,10 +473,18 @@ static REBOOL Nonblocking_Mode(SOCKET sock)
473473
#endif
474474
//i64 tm = OS_Delta_Time(0, 0);
475475

476-
Set_Addr(&remote_addr, sock->net.remote_ip, sock->net.remote_port);
477476
//WATCH1("sendto data: %x\n", sock->data);
478-
result = sendto(sock->socket, sock->data, len, flags,
479-
(struct sockaddr*)&remote_addr, addr_len);
477+
if (GET_FLAG(sock->modes, RST_UDP)) {
478+
Set_Addr(&remote_addr, sock->net.remote_ip, sock->net.remote_port);
479+
result = sendto(sock->socket, sock->data, len, flags,
480+
(struct sockaddr*)&remote_addr, addr_len);
481+
}
482+
else {
483+
// Expects that the socket is already connected and
484+
// there is no need to specify the remote address again
485+
result = send(sock->socket, sock->data, len, flags);
486+
}
487+
480488
//printf("sento time: %d\n", OS_Delta_Time(tm, 0));
481489
//WATCH2("send() len: %d actual: %d\n", len, result);
482490

0 commit comments

Comments
 (0)