mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-25 17:51:01 +00:00
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:
parent
b1cffc579d
commit
ddd601e6b9
1 changed files with 27 additions and 18 deletions
|
@ -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:
|
||||||
|
|
Loading…
Reference in a new issue