From ddd601e6b95467d3a09e12daf0acabbcd528a7d7 Mon Sep 17 00:00:00 2001 From: rfm Date: Thu, 10 Jan 2008 10:12:56 +0000 Subject: [PATCH] mingw32 has AF_UNIX, but not sockaddr_un git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@25913 72102866-910b-0410-8b05-ffd578937521 --- Source/GSSocketStream.m | 45 ++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/Source/GSSocketStream.m b/Source/GSSocketStream.m index 11761551a..f818a5cb1 100644 --- a/Source/GSSocketStream.m +++ b/Source/GSSocketStream.m @@ -48,7 +48,7 @@ GSPrivateSockaddrLength(struct sockaddr *addr) #ifdef AF_INET6 case AF_INET6: return sizeof(struct sockaddr_in6); #endif -#ifdef AF_UNIX +#ifndef __MINGW32__ case AF_UNIX: return sizeof(struct sockaddr_un); #endif default: return 0; @@ -211,7 +211,12 @@ GSTLSPull(gnutls_transport_ptr_t handle, void *buffer, size_t len) } else { +#if defined(__MINGW32__) + e = WSAEWOULDBLOCK; +#else e = EWOULDBLOCK; +#endif + } gnutls_transport_set_errno (tls->session, e); } @@ -238,7 +243,11 @@ GSTLSPush(gnutls_transport_ptr_t handle, const void *buffer, size_t len) } else { +#if defined(__MINGW32__) + e = WSAEWOULDBLOCK; +#else e = EWOULDBLOCK; +#endif } gnutls_transport_set_errno (tls->session, e); } @@ -1326,26 +1335,26 @@ setNonBlocking(SOCKET fd) } #endif -#if defined(AF_UNIX) +#ifndef __MINGW32__ case AF_UNIX: - { - struct sockaddr_un peer; - const char *c_addr; + { + struct sockaddr_un peer; + const char *c_addr; - c_addr = [address fileSystemRepresentation]; - memset(&peer, '\0', sizeof(peer)); - peer.sun_family = AF_LOCAL; - if (strlen(c_addr) > sizeof(peer.sun_path)-1) // too long - { - return NO; + c_addr = [address fileSystemRepresentation]; + memset(&peer, '\0', sizeof(peer)); + peer.sun_family = AF_LOCAL; + if (strlen(c_addr) > sizeof(peer.sun_path)-1) // too long + { + return NO; + } + else + { + strncpy(peer.sun_path, c_addr, sizeof(peer.sun_path)-1); + [self _setAddress: (struct sockaddr*)&peer]; + return YES; + } } - else - { - strncpy(peer.sun_path, c_addr, sizeof(peer.sun_path)-1); - [self _setAddress: (struct sockaddr*)&peer]; - return YES; - } - } #endif default: