Skip to content

Commit 46f36e3

Browse files
committed
Revert "unix,stream: clear read/write states on close/eof"
This reverts commit 12be29f. The commit in question was introducing failures in the Node.js test suite. Refs: libuv#2943 Refs: libuv#2967 Refs: libuv#2409 PR-URL: libuv#2968 Reviewed-By: Santiago Gimeno <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]>
1 parent 0e6e862 commit 46f36e3

9 files changed

+2
-306
lines changed

CMakeLists.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -424,9 +424,6 @@ if(LIBUV_BUILD_TESTS)
424424
test/test-metrics.c
425425
test/test-multiple-listen.c
426426
test/test-mutexes.c
427-
test/test-not-readable-nor-writable-on-read-error.c
428-
test/test-not-readable-on-eof.c
429-
test/test-not-writable-after-shutdown.c
430427
test/test-osx-select.c
431428
test/test-pass-always.c
432429
test/test-ping-pong.c

Makefile.am

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,6 @@ test_run_tests_SOURCES = test/blackhole-server.c \
206206
test/test-metrics.c \
207207
test/test-multiple-listen.c \
208208
test/test-mutexes.c \
209-
test/test-not-readable-nor-writable-on-read-error.c \
210-
test/test-not-readable-on-eof.c \
211-
test/test-not-writable-after-shutdown.c \
212209
test/test-osx-select.c \
213210
test/test-pass-always.c \
214211
test/test-ping-pong.c \

src/unix/stream.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1001,7 +1001,6 @@ uv_handle_type uv__handle_type(int fd) {
10011001
static void uv__stream_eof(uv_stream_t* stream, const uv_buf_t* buf) {
10021002
stream->flags |= UV_HANDLE_READ_EOF;
10031003
stream->flags &= ~UV_HANDLE_READING;
1004-
stream->flags &= ~UV_HANDLE_READABLE;
10051004
uv__io_stop(stream->loop, &stream->io_watcher, POLLIN);
10061005
if (!uv__io_active(&stream->io_watcher, POLLOUT))
10071006
uv__handle_stop(stream);
@@ -1189,7 +1188,6 @@ static void uv__read(uv_stream_t* stream) {
11891188
#endif
11901189
} else {
11911190
/* Error. User should call uv_close(). */
1192-
stream->flags &= ~(UV_HANDLE_READABLE | UV_HANDLE_WRITABLE);
11931191
stream->read_cb(stream, UV__ERR(errno), &buf);
11941192
if (stream->flags & UV_HANDLE_READING) {
11951193
stream->flags &= ~UV_HANDLE_READING;
@@ -1278,7 +1276,6 @@ int uv_shutdown(uv_shutdown_t* req, uv_stream_t* stream, uv_shutdown_cb cb) {
12781276
req->cb = cb;
12791277
stream->shutdown_req = req;
12801278
stream->flags |= UV_HANDLE_SHUTTING;
1281-
stream->flags &= ~UV_HANDLE_WRITABLE;
12821279

12831280
uv__io_start(stream->loop, &stream->io_watcher, POLLOUT);
12841281
uv__stream_osx_interrupt_select(stream);

src/win/tcp.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,7 +1015,6 @@ void uv_process_tcp_read_req(uv_loop_t* loop, uv_tcp_t* handle,
10151015
*/
10161016
err = WSAECONNRESET;
10171017
}
1018-
handle->flags &= ~(UV_HANDLE_READABLE | UV_HANDLE_WRITABLE);
10191018

10201019
handle->read_cb((uv_stream_t*)handle,
10211020
uv_translate_sys_error(err),
@@ -1097,7 +1096,6 @@ void uv_process_tcp_read_req(uv_loop_t* loop, uv_tcp_t* handle,
10971096
* Unix. */
10981097
err = WSAECONNRESET;
10991098
}
1100-
handle->flags &= ~(UV_HANDLE_READABLE | UV_HANDLE_WRITABLE);
11011099

11021100
handle->read_cb((uv_stream_t*)handle,
11031101
uv_translate_sys_error(err),

test/echo-server.c

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ static void after_shutdown(uv_shutdown_t* req, int status) {
6969
free(req);
7070
}
7171

72+
7273
static void after_read(uv_stream_t* handle,
7374
ssize_t nread,
7475
const uv_buf_t* buf) {
@@ -95,20 +96,13 @@ static void after_read(uv_stream_t* handle,
9596
/*
9697
* Scan for the letter Q which signals that we should quit the server.
9798
* If we get QS it means close the stream.
98-
* If we get QSH it means disable linger before close the socket.
9999
*/
100100
if (!server_closed) {
101101
for (i = 0; i < nread; i++) {
102102
if (buf->base[i] == 'Q') {
103103
if (i + 1 < nread && buf->base[i + 1] == 'S') {
104-
int reset = 0;
105-
if (i + 2 < nread && buf->base[i + 2] == 'H')
106-
reset = 1;
107104
free(buf->base);
108-
if (reset && handle->type == UV_TCP)
109-
ASSERT(0 == uv_tcp_close_reset((uv_tcp_t*) handle, on_close));
110-
else
111-
uv_close((uv_handle_t*) handle, on_close);
105+
uv_close((uv_handle_t*)handle, on_close);
112106
return;
113107
} else {
114108
uv_close(server, on_server_close);

test/test-list.h

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -501,10 +501,6 @@ TEST_DECLARE (handle_type_name)
501501
TEST_DECLARE (req_type_name)
502502
TEST_DECLARE (getters_setters)
503503

504-
TEST_DECLARE (not_writable_after_shutdown)
505-
TEST_DECLARE (not_readable_nor_writable_on_read_error)
506-
TEST_DECLARE (not_readable_on_eof)
507-
508504
#ifndef _WIN32
509505
TEST_DECLARE (fork_timer)
510506
TEST_DECLARE (fork_socketpair)
@@ -1119,13 +1115,6 @@ TASK_LIST_START
11191115
TEST_ENTRY (idna_toascii)
11201116
#endif
11211117

1122-
TEST_ENTRY (not_writable_after_shutdown)
1123-
TEST_HELPER (not_writable_after_shutdown, tcp4_echo_server)
1124-
TEST_ENTRY (not_readable_nor_writable_on_read_error)
1125-
TEST_HELPER (not_readable_nor_writable_on_read_error, tcp4_echo_server)
1126-
TEST_ENTRY (not_readable_on_eof)
1127-
TEST_HELPER (not_readable_on_eof, tcp4_echo_server)
1128-
11291118
TEST_ENTRY (metrics_idle_time)
11301119
TEST_ENTRY (metrics_idle_time_thread)
11311120
TEST_ENTRY (metrics_idle_time_zero)

test/test-not-readable-nor-writable-on-read-error.c

Lines changed: 0 additions & 104 deletions
This file was deleted.

test/test-not-readable-on-eof.c

Lines changed: 0 additions & 103 deletions
This file was deleted.

test/test-not-writable-after-shutdown.c

Lines changed: 0 additions & 69 deletions
This file was deleted.

0 commit comments

Comments
 (0)