mirror of
https://github.com/simh/simh.git
synced 2026-03-03 10:06:27 +00:00
HP-UX socket fixes from Mikulas Patocka.
1. getaddrinfo returns IPv6 address even if IPv6 is not configured. The socket syscalls fails to create IPv6 socket. This is fixed by retrying for all possible addresses returned by getaddrinfo. 2. On HP-UX EAGAIN is used, not EWOULDBLOCK.
This commit is contained in:
@@ -715,9 +715,17 @@ for (; preferred != NULL; preferred = preferred->ai_next) {
|
||||
}
|
||||
if (preferred == NULL)
|
||||
preferred = result;
|
||||
#else
|
||||
retry:
|
||||
#endif
|
||||
newsock = sim_create_sock (preferred->ai_family); /* create socket */
|
||||
if (newsock == INVALID_SOCKET) { /* socket error? */
|
||||
#ifndef IPV6_V6ONLY
|
||||
if (preferred->ai_next) {
|
||||
preferred = preferred->ai_next;
|
||||
goto retry;
|
||||
}
|
||||
#endif
|
||||
p_freeaddrinfo(result);
|
||||
return newsock;
|
||||
}
|
||||
|
||||
@@ -53,7 +53,11 @@
|
||||
#define WSAGetLastError() errno /* Windows macros */
|
||||
#define closesocket close
|
||||
#define SOCKET int32
|
||||
#if defined(__hpux)
|
||||
#define WSAEWOULDBLOCK EAGAIN
|
||||
#else
|
||||
#define WSAEWOULDBLOCK EWOULDBLOCK
|
||||
#endif
|
||||
#define WSAEINPROGRESS EINPROGRESS
|
||||
#define WSAETIMEDOUT ETIMEDOUT
|
||||
#define WSAECONNREFUSED ECONNREFUSED
|
||||
|
||||
Reference in New Issue
Block a user