From e31d0d51a99ee2655624c8f80a1e130aa824d118 Mon Sep 17 00:00:00 2001 From: Daniel Collins Date: Sun, 5 Jan 2014 19:00:42 +0000 Subject: [PATCH] Updated send to work with SPX sockets. --- src/winsock.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/winsock.c b/src/winsock.c index 8593672..7ab4404 100644 --- a/src/winsock.c +++ b/src/winsock.c @@ -1728,18 +1728,27 @@ int PASCAL send(SOCKET fd, const char *buf, int len, int flags) if(sock) { - if(!(sock->flags & IPX_CONNECTED)) + if(sock->flags & IPX_IS_SPX) { - WSASetLastError(WSAENOTCONN); + unlock_sockets(); + + return r_send(fd, buf, len, flags); + } + else{ + if(!(sock->flags & IPX_CONNECTED)) + { + unlock_sockets(); + + WSASetLastError(WSAENOTCONN); + return -1; + } + + int ret = sendto(fd, buf, len, 0, (struct sockaddr*)&(sock->remote_addr), sizeof(struct sockaddr_ipx)); unlock_sockets(); - return -1; + + return ret; } - - int ret = sendto(fd, buf, len, 0, (struct sockaddr*)&(sock->remote_addr), sizeof(struct sockaddr_ipx)); - - unlock_sockets(); - return ret; } else{ return r_send(fd, buf, len, flags);