summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/fopen_wrappers.c4
-rw-r--r--main/mergesort.c2
-rw-r--r--main/network.c2
-rw-r--r--main/php.h4
-rw-r--r--main/php_open_temporary_file.c2
-rwxr-xr-xmain/streams.c18
6 files changed, 27 insertions, 5 deletions
diff --git a/main/fopen_wrappers.c b/main/fopen_wrappers.c
index c6781c8ce8..eb91436b3b 100644
--- a/main/fopen_wrappers.c
+++ b/main/fopen_wrappers.c
@@ -33,7 +33,7 @@
#ifdef PHP_WIN32
#include <windows.h>
-#include <winsock.h>
+#include <winsock2.h>
#define O_RDONLY _O_RDONLY
#include "win32/param.h"
#elif defined(NETWARE)
@@ -74,7 +74,7 @@
#endif
#ifdef PHP_WIN32
-#include <winsock.h>
+#include <winsock2.h>
#elif defined(NETWARE) && defined(USE_WINSOCK)
/*#include <ws2nlm.h>*/
#include <novsock2.h>
diff --git a/main/mergesort.c b/main/mergesort.c
index 7ee4ee00ef..34da44cf2f 100644
--- a/main/mergesort.c
+++ b/main/mergesort.c
@@ -61,7 +61,7 @@ static char sccsid[] = "@(#)merge.c 8.2 (Berkeley) 2/14/94";
#include "php.h"
#ifdef PHP_WIN32
-#include <winsock.h> /* Includes definition for u_char */
+#include <winsock2.h> /* Includes definition for u_char */
#endif
#if defined(NETWARE) && !defined(NEW_LIBC)
diff --git a/main/network.c b/main/network.c
index 51b46b8f18..50428a8116 100644
--- a/main/network.c
+++ b/main/network.c
@@ -26,7 +26,7 @@
#ifdef PHP_WIN32
#include <windows.h>
-#include <winsock.h>
+#include <winsock2.h>
#define O_RDONLY _O_RDONLY
#include "win32/param.h"
#elif defined(NETWARE)
diff --git a/main/php.h b/main/php.h
index 6cd191453a..d6c220b3e1 100644
--- a/main/php.h
+++ b/main/php.h
@@ -22,6 +22,10 @@
#ifndef PHP_H
#define PHP_H
+#ifdef PHP_WIN32
+#include <winsock2.h>
+#endif
+
#ifdef HAVE_DMALLOC
#include <dmalloc.h>
#endif
diff --git a/main/php_open_temporary_file.c b/main/php_open_temporary_file.c
index eff0393eb1..f24ee66e31 100644
--- a/main/php_open_temporary_file.c
+++ b/main/php_open_temporary_file.c
@@ -27,7 +27,7 @@
#ifdef PHP_WIN32
#include <windows.h>
-#include <winsock.h>
+#include <winsock2.h>
#define O_RDONLY _O_RDONLY
#include "win32/param.h"
#include "win32/winutil.h"
diff --git a/main/streams.c b/main/streams.c
index 67e961540b..d746e35996 100755
--- a/main/streams.c
+++ b/main/streams.c
@@ -1332,6 +1332,15 @@ PHPAPI php_stream *_php_stream_fopen_from_fd(int fd, const char *mode STREAMS_DC
struct stat sb;
self->is_pipe = (fstat(self->fd, &sb) == 0 && S_ISFIFO(sb.st_mode)) ? 1 : 0;
}
+#elif defined(PHP_WIN32)
+ {
+ long handle = _get_osfhandle(self->fd);
+ DWORD in_buf_size, out_buf_size;
+
+ if (handle != 0xFFFFFFFF) {
+ self->is_pipe = GetNamedPipeInfo((HANDLE)handle, NULL, &out_buf_size, &in_buf_size, NULL);
+ }
+ }
#endif
stream = php_stream_alloc_rel(&php_stream_stdio_ops, self, 0, mode);
@@ -1365,6 +1374,15 @@ PHPAPI php_stream *_php_stream_fopen_from_file(FILE *file, const char *mode STRE
struct stat sb;
self->is_pipe = (fstat(self->fd, &sb) == 0 && S_ISFIFO(sb.st_mode)) ? 1 : 0;
}
+#elif defined(PHP_WIN32)
+ {
+ long handle = _get_osfhandle(self->fd);
+ DWORD in_buf_size, out_buf_size;
+
+ if (handle != 0xFFFFFFFF) {
+ self->is_pipe = GetNamedPipeInfo((HANDLE)handle, NULL, &out_buf_size, &in_buf_size, NULL);
+ }
+ }
#endif
stream = php_stream_alloc_rel(&php_stream_stdio_ops, self, 0, mode);