diff options
| author | Anatol Belski <ab@php.net> | 2017-02-15 11:22:47 +0100 |
|---|---|---|
| committer | Anatol Belski <ab@php.net> | 2017-02-15 11:22:47 +0100 |
| commit | 89a5bd67500510f30a729ff97048fa230c9f9bd3 (patch) | |
| tree | 24103d2adabc7c9e9879e52eacec9e1fed4a25ab /main | |
| parent | 391735053181f3d166e4ebb58cf04a8acf3d1724 (diff) | |
| download | php-git-89a5bd67500510f30a729ff97048fa230c9f9bd3.tar.gz | |
Fixed bug #74090 stream_get_contents maxlength>-1 returns empty string
Diffstat (limited to 'main')
| -rw-r--r-- | main/streams/php_streams_int.h | 4 | ||||
| -rw-r--r-- | main/streams/xp_socket.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/main/streams/php_streams_int.h b/main/streams/php_streams_int.h index 42fdfcb4c7..13a817833f 100644 --- a/main/streams/php_streams_int.h +++ b/main/streams/php_streams_int.h @@ -53,6 +53,10 @@ # undef EWOULDBLOCK # endif # define EWOULDBLOCK WSAEWOULDBLOCK +# ifdef EMSGSIZE +# undef EMSGSIZE +# endif +# define EMSGSIZE WSAEMSGSIZE #endif /* This functions transforms the first char to 'w' if it's not 'r', 'a' or 'w' diff --git a/main/streams/xp_socket.c b/main/streams/xp_socket.c index a791621a20..701a993ccc 100644 --- a/main/streams/xp_socket.c +++ b/main/streams/xp_socket.c @@ -336,7 +336,7 @@ static int php_sockop_set_option(php_stream *stream, int option, int value, void ret = recv(sock->socket, &buf, sizeof(buf), MSG_PEEK); err = php_socket_errno(); if (0 == ret || /* the counterpart did properly shutdown*/ - (0 > ret && err != EWOULDBLOCK && err != EAGAIN)) { /* there was an unrecoverable error */ + (0 > ret && err != EWOULDBLOCK && err != EAGAIN && err != EMSGSIZE)) { /* there was an unrecoverable error */ alive = 0; } } |
