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
This commit is contained in:
rfm 2008-01-10 10:12:56 +00:00
parent b1cffc579d
commit ddd601e6b9

View file

@ -48,7 +48,7 @@ GSPrivateSockaddrLength(struct sockaddr *addr)
#ifdef AF_INET6 #ifdef AF_INET6
case AF_INET6: return sizeof(struct sockaddr_in6); case AF_INET6: return sizeof(struct sockaddr_in6);
#endif #endif
#ifdef AF_UNIX #ifndef __MINGW32__
case AF_UNIX: return sizeof(struct sockaddr_un); case AF_UNIX: return sizeof(struct sockaddr_un);
#endif #endif
default: return 0; default: return 0;
@ -211,7 +211,12 @@ GSTLSPull(gnutls_transport_ptr_t handle, void *buffer, size_t len)
} }
else else
{ {
#if defined(__MINGW32__)
e = WSAEWOULDBLOCK;
#else
e = EWOULDBLOCK; e = EWOULDBLOCK;
#endif
} }
gnutls_transport_set_errno (tls->session, e); gnutls_transport_set_errno (tls->session, e);
} }
@ -238,7 +243,11 @@ GSTLSPush(gnutls_transport_ptr_t handle, const void *buffer, size_t len)
} }
else else
{ {
#if defined(__MINGW32__)
e = WSAEWOULDBLOCK;
#else
e = EWOULDBLOCK; e = EWOULDBLOCK;
#endif
} }
gnutls_transport_set_errno (tls->session, e); gnutls_transport_set_errno (tls->session, e);
} }
@ -1326,26 +1335,26 @@ setNonBlocking(SOCKET fd)
} }
#endif #endif
#if defined(AF_UNIX) #ifndef __MINGW32__
case AF_UNIX: case AF_UNIX:
{ {
struct sockaddr_un peer; struct sockaddr_un peer;
const char *c_addr; const char *c_addr;
c_addr = [address fileSystemRepresentation]; c_addr = [address fileSystemRepresentation];
memset(&peer, '\0', sizeof(peer)); memset(&peer, '\0', sizeof(peer));
peer.sun_family = AF_LOCAL; peer.sun_family = AF_LOCAL;
if (strlen(c_addr) > sizeof(peer.sun_path)-1) // too long if (strlen(c_addr) > sizeof(peer.sun_path)-1) // too long
{ {
return NO; 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 #endif
default: default: