From ae2837258fd0e09c7caa498a559469a8def79f5b Mon Sep 17 00:00:00 2001 From: Daniel Collins Date: Sat, 11 Jan 2014 22:59:58 +0000 Subject: [PATCH] Updated shutdown to work with SPX sockets. --- src/winsock.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/winsock.c b/src/winsock.c index 08f5256..7257f2d 100644 --- a/src/winsock.c +++ b/src/winsock.c @@ -1107,18 +1107,25 @@ int PASCAL shutdown(SOCKET fd, int cmd) if(sock) { - if(cmd == SD_RECEIVE || cmd == SD_BOTH) + if(sock->flags & IPX_IS_SPX) { - sock->flags &= ~IPX_RECV; + unlock_sockets(); + return r_shutdown(fd, cmd); } - - if(cmd == SD_SEND || cmd == SD_BOTH) - { - sock->flags &= ~IPX_SEND; + else{ + if(cmd == SD_RECEIVE || cmd == SD_BOTH) + { + sock->flags &= ~IPX_RECV; + } + + if(cmd == SD_SEND || cmd == SD_BOTH) + { + sock->flags &= ~IPX_SEND; + } + + unlock_sockets(); + return 0; } - - unlock_sockets(); - return 0; } else{ return r_shutdown(fd, cmd);