aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/connect.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/connect.c b/lib/connect.c
index 69f8ce374..0d8d278f8 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -26,8 +26,12 @@
#ifndef WIN32
/* headers for non-win32 */
#include <sys/time.h>
-#include <sys/socket.h>
+#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
#include <sys/ioctl.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
@@ -171,6 +175,11 @@ int waitconnect(int sockfd, /* socket */
struct timeval interval;
int rc;
+ /* Call this function once now, and ignore the results. We do this to
+ "clear" the error state on the socket so that we can later read it
+ reliably. This is reported necessary on the MPE/iX operating system. */
+ verifyconnect();
+
/* now select() until we get connect or timeout */
FD_ZERO(&fd);
FD_SET(sockfd, &fd);