summaryrefslogtreecommitdiff
path: root/main/streams/xp_socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/streams/xp_socket.c')
-rw-r--r--main/streams/xp_socket.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/main/streams/xp_socket.c b/main/streams/xp_socket.c
index bce6a09fb0..7427a794b4 100644
--- a/main/streams/xp_socket.c
+++ b/main/streams/xp_socket.c
@@ -233,10 +233,11 @@ static int php_sockop_flush(php_stream *stream TSRMLS_DC)
static int php_sockop_stat(php_stream *stream, php_stream_statbuf *ssb TSRMLS_DC)
{
- php_netstream_data_t *sock = (php_netstream_data_t*)stream->abstract;
#if ZEND_WIN32
return 0;
#else
+ php_netstream_data_t *sock = (php_netstream_data_t*)stream->abstract;
+
return zend_fstat(sock->socket, &ssb->sb);
#endif
}
@@ -251,7 +252,11 @@ static inline int sock_sendto(php_netstream_data_t *sock, const char *buf, size_
return (ret == SOCK_CONN_ERR) ? -1 : ret;
}
+#ifdef PHP_WIN32
+ return ((ret = send(sock->socket, buf, buflen > INT_MAX ? INT_MAX : (int)buflen, flags)) == SOCK_CONN_ERR) ? -1 : ret;
+#else
return ((ret = send(sock->socket, buf, buflen, flags)) == SOCK_CONN_ERR) ? -1 : ret;
+#endif
}
static inline int sock_recvfrom(php_netstream_data_t *sock, char *buf, size_t buflen, int flags,