summaryrefslogtreecommitdiff
path: root/ext/ftp/ftp.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/ftp/ftp.c')
-rw-r--r--ext/ftp/ftp.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/ext/ftp/ftp.c b/ext/ftp/ftp.c
index fa167a62d8..1b0eefa039 100644
--- a/ext/ftp/ftp.c
+++ b/ext/ftp/ftp.c
@@ -37,13 +37,19 @@
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
+#if HAVE_UINSTD_H
#include <unistd.h>
+#endif
#include <fcntl.h>
#include <string.h>
#include <time.h>
+#if PHP_WIN32
+#include <winsock.h>
+#else
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
+#endif
#include <errno.h>
#if HAVE_SYS_TIME_H
@@ -53,7 +59,7 @@
#include "ftp.h"
/* define closesocket macro for portability */
-#if !defined(WIN32) && !defined(WINNT)
+#if !PHP_WIN32
#undef closesocket
#define closesocket close
#endif
@@ -837,7 +843,9 @@ my_send(int s, void *buf, size_t len)
n = select(s + 1, NULL, &write_set, NULL, &tv);
if (n < 1) {
if (n == 0)
+#if !PHP_WIN32
errno = ETIMEDOUT;
+#endif
return -1;
}
@@ -868,7 +876,9 @@ my_recv(int s, void *buf, size_t len)
n = select(s + 1, &read_set, NULL, NULL, &tv);
if (n < 1) {
if (n == 0)
+#if !PHP_WIN32
errno = ETIMEDOUT;
+#endif
return -1;
}
@@ -878,6 +888,7 @@ my_recv(int s, void *buf, size_t len)
int
my_connect(int s, const struct sockaddr *addr, int addrlen)
+#if !PHP_WIN32
{
fd_set conn_set;
int flags;
@@ -921,7 +932,11 @@ my_connect(int s, const struct sockaddr *addr, int addrlen)
return 0;
}
-
+#else
+{
+ return connect(s, addr, addrlen);
+}
+#endif
int
my_accept(int s, struct sockaddr *addr, int *addrlen)
@@ -938,7 +953,9 @@ my_accept(int s, struct sockaddr *addr, int *addrlen)
n = select(s + 1, &accept_set, NULL, NULL, &tv);
if (n < 1) {
if (n == 0)
+#if !PHP_WIN32
errno = ETIMEDOUT;
+#endif
return -1;
}