com php-src: add EAGAIN checks: main/streams/xp_socket.c

From: Date: Tue, 11 Aug 2015 13:17:25 +0000
Subject: com php-src: add EAGAIN checks: main/streams/xp_socket.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-88454@lists.php.net to get a copy of this message
Commit: 7eb6bd1311a815ec23eb7cf06f6214f4a2d5895a Author: Anatol Belski <ab@php.net> Tue, 11 Aug 2015 15:17:25 +0200 Parents: 8d2b131d9f4a52ea1e03ebeaaf3922abdc308d63 Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=7eb6bd1311a815ec23eb7cf06f6214f4a2d5895a Log: add EAGAIN checks EAGAIN and EWOULDBLOCK should be checked together and don't necessary, have same value. So checking both is better for portability. Changed paths: M main/streams/xp_socket.c Diff: diff --git a/main/streams/xp_socket.c b/main/streams/xp_socket.c index 300a58e..da80a0a 100644 --- a/main/streams/xp_socket.c +++ b/main/streams/xp_socket.c @@ -77,10 +77,10 @@ retry: didwrite = send(sock->socket, buf, XP_SOCK_BUF_SIZE(count), (sock->is_blocked && ptimeout) ? MSG_DONTWAIT : 0); if (didwrite <= 0) { - long err = php_socket_errno(); + int err = php_socket_errno(); char *estr; - if (sock->is_blocked && err == EWOULDBLOCK) { + if (sock->is_blocked && (err == EWOULDBLOCK || err == EAGAIN)) { int retval; sock->timeout_event = 0; @@ -152,6 +152,7 @@ static size_t php_sockop_read(php_stream *stream, char *buf, size_t count) { php_netstream_data_t *sock = (php_netstream_data_t*)stream->abstract; ssize_t nr_bytes = 0; + int err; if (!sock || sock->socket == -1) { return 0; @@ -164,8 +165,9 @@ static size_t php_sockop_read(php_stream *stream, char *buf, size_t count) } nr_bytes = recv(sock->socket, buf, XP_SOCK_BUF_SIZE(count), (sock->is_blocked && sock->timeout.tv_sec != -1) ? MSG_DONTWAIT : 0); + err = php_socket_errno(); - stream->eof = (nr_bytes == 0 || (nr_bytes == -1 && php_socket_errno() != EWOULDBLOCK)); + stream->eof = (nr_bytes == 0 || (nr_bytes == -1 && err != EWOULDBLOCK && err != EAGAIN)); if (nr_bytes > 0) { php_stream_notify_progress_increment(PHP_STREAM_CONTEXT(stream), nr_bytes, 0);

« previous php.cvs (#88454) next »