Index: src/OFKernelEventObserver.m ================================================================== --- src/OFKernelEventObserver.m +++ src/OFKernelEventObserver.m @@ -178,13 +178,19 @@ return self; } - (void)dealloc { +#ifdef OF_HAVE_PIPE close(_cancelFD[0]); if (_cancelFD[1] != _cancelFD[0]) close(_cancelFD[1]); +#else + closesocket(_cancelFD[0]); + if (_cancelFD[1] != _cancelFD[0]) + closesocket(_cancelFD[1]); +#endif [_readObjects release]; [_writeObjects release]; #ifdef OF_HAVE_THREADS Index: src/OFStreamSocket.m ================================================================== --- src/OFStreamSocket.m +++ src/OFStreamSocket.m @@ -167,11 +167,11 @@ - (void)close { if (_socket == INVALID_SOCKET) @throw [OFNotOpenException exceptionWithObject: self]; - close(_socket); + closesocket(_socket); _socket = INVALID_SOCKET; _atEndOfStream = false; [super close]; Index: src/OFTCPSocket.m ================================================================== --- src/OFTCPSocket.m +++ src/OFTCPSocket.m @@ -285,11 +285,11 @@ if (connect(_socket, result->address, result->addressLength) == -1) { errNo = of_socket_errno(); - close(_socket); + closesocket(_socket); _socket = INVALID_SOCKET; continue; } @@ -398,11 +398,11 @@ #endif if (bind(_socket, results[0]->address, results[0]->addressLength) != 0) { int errNo = of_socket_errno(); - close(_socket); + closesocket(_socket); _socket = INVALID_SOCKET; @throw [OFBindFailedException exceptionWithHost: host port: port @@ -445,11 +445,11 @@ } if (of_socket_errno() != EADDRINUSE) { int errNo = of_socket_errno(); - close(_socket); + closesocket(_socket); _socket = INVALID_SOCKET; @throw [OFBindFailedException exceptionWithHost: host port: port @@ -470,11 +470,11 @@ addrLen = (socklen_t)sizeof(addr.storage); if (of_getsockname(_socket, (struct sockaddr *)&addr.storage, &addrLen) != 0) { int errNo = of_socket_errno(); - close(_socket); + closesocket(_socket); _socket = INVALID_SOCKET; @throw [OFBindFailedException exceptionWithHost: host port: port socket: self @@ -487,11 +487,11 @@ if (addr.storage.ss_family == AF_INET6) return OF_BSWAP16_IF_LE(addr.in6.sin6_port); # endif #endif - close(_socket); + closesocket(_socket); _socket = INVALID_SOCKET; @throw [OFBindFailedException exceptionWithHost: host port: port socket: self errNo: EAFNOSUPPORT]; Index: src/OFUDPSocket.m ================================================================== --- src/OFUDPSocket.m +++ src/OFUDPSocket.m @@ -422,11 +422,11 @@ #endif if (bind(_socket, results[0]->address, results[0]->addressLength) != 0) { int errNo = of_socket_errno(); - close(_socket); + closesocket(_socket); _socket = INVALID_SOCKET; @throw [OFBindFailedException exceptionWithHost: host port: port @@ -469,11 +469,11 @@ } if (of_socket_errno() != EADDRINUSE) { int errNo = of_socket_errno(); - close(_socket); + closesocket(_socket); _socket = INVALID_SOCKET; @throw [OFBindFailedException exceptionWithHost: host port: port @@ -494,11 +494,11 @@ addrLen = (socklen_t)sizeof(addr.storage); if (of_getsockname(_socket, (struct sockaddr *)&addr.storage, &addrLen) != 0) { int errNo = of_socket_errno(); - close(_socket); + closesocket(_socket); _socket = INVALID_SOCKET; @throw [OFBindFailedException exceptionWithHost: host port: port socket: self @@ -511,11 +511,11 @@ if (addr.storage.ss_family == AF_INET6) return OF_BSWAP16_IF_LE(addr.in6.sin6_port); # endif #endif - close(_socket); + closesocket(_socket); _socket = INVALID_SOCKET; @throw [OFBindFailedException exceptionWithHost: host port: port socket: self errNo: EAFNOSUPPORT]; @@ -648,9 +648,9 @@ - (void)close { if (_socket == INVALID_SOCKET) @throw [OFNotOpenException exceptionWithObject: self]; - close(_socket); + closesocket(_socket); _socket = INVALID_SOCKET; } @end Index: src/socket_helpers.h ================================================================== --- src/socket_helpers.h +++ src/socket_helpers.h @@ -59,22 +59,22 @@ #ifndef SOCK_CLOEXEC # define SOCK_CLOEXEC 0 #endif -#ifdef OF_WINDOWS -# define close(sock) closesocket(sock) +#if !defined(OF_WINDOWS) && !defined(OF_WII) +# define closesocket(sock) close(sock) #endif #ifdef OF_MORPHOS typedef uint32_t in_addr_t; #endif #ifdef OF_WII # define accept(sock, addr, addrlen) net_accept(sock, addr, addrlen) # define bind(sock, addr, addrlen) net_bind(sock, addr, addrlen) -# define close(sock) net_close(sock) +# define closesocket(sock) net_close(sock) # define connect(sock, addr, addrlen) net_connect(sock, addr, addrlen) # define gethostbyname(name) net_gethostbyname(name) # define h_errno 0 # define hstrerror(err) "unknown (no hstrerror)" # define listen(sock, backlog) net_listen(sock, backlog)