Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Commit

Permalink
update libuv to 6bbccf1fe0
Browse files Browse the repository at this point in the history
  • Loading branch information
Igor Zinkovsky committed Mar 1, 2012
1 parent 67b10f8 commit 9be20af
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 0 deletions.
1 change: 1 addition & 0 deletions deps/uv/src/win/error.c
Expand Up @@ -115,6 +115,7 @@ uv_err_code uv_translate_sys_error(int sys_errno) {
case ERROR_SEM_TIMEOUT: return UV_ETIMEDOUT;
case WSAETIMEDOUT: return UV_ETIMEDOUT;
case WSAHOST_NOT_FOUND: return UV_ENOENT;
case WSAENOTSOCK: return UV_ENOTSOCK;
default: return UV_UNKNOWN;
}
}
Expand Down
6 changes: 6 additions & 0 deletions deps/uv/src/win/pipe.c
Expand Up @@ -560,6 +560,12 @@ void uv_pipe_connect(uv_connect_t* req, uv_pipe_t* handle,

assert(handle->handle != INVALID_HANDLE_VALUE);

/* Ensure that what we just opened is actually a pipe */
if (!GetNamedPipeInfo(handle->handle, NULL, NULL, NULL, NULL)) {
errno = WSAENOTSOCK;
goto error;
}

if (uv_set_pipe_handle(loop, (uv_pipe_t*)req->handle, handle->handle)) {
errno = GetLastError();
goto error;
Expand Down
2 changes: 2 additions & 0 deletions deps/uv/test/test-list.h
Expand Up @@ -58,6 +58,7 @@ TEST_DECLARE (pipe_bind_error_addrnotavail)
TEST_DECLARE (pipe_bind_error_inval)
TEST_DECLARE (pipe_listen_without_bind)
TEST_DECLARE (pipe_connect_bad_name)
TEST_DECLARE (pipe_connect_to_file)
TEST_DECLARE (connection_fail)
TEST_DECLARE (connection_fail_doesnt_auto_close)
TEST_DECLARE (shutdown_eof)
Expand Down Expand Up @@ -159,6 +160,7 @@ TASK_LIST_START
TEST_OUTPUT_ENTRY (platform_output)

TEST_ENTRY (pipe_connect_bad_name)
TEST_ENTRY (pipe_connect_to_file)

TEST_ENTRY (tty)
TEST_ENTRY (stdio_over_pipes)
Expand Down
27 changes: 27 additions & 0 deletions deps/uv/test/test-pipe-connect-error.c
Expand Up @@ -50,6 +50,14 @@ static void connect_cb(uv_connect_t* connect_req, int status) {
}


static void connect_cb_file(uv_connect_t* connect_req, int status) {
ASSERT(status == -1);
ASSERT(uv_last_error(uv_default_loop()).code == UV_ENOTSOCK);
uv_close((uv_handle_t*)connect_req->handle, close_cb);
connect_cb_called++;
}


TEST_IMPL(pipe_connect_bad_name) {
uv_pipe_t client;
uv_connect_t req;
Expand All @@ -66,3 +74,22 @@ TEST_IMPL(pipe_connect_bad_name) {

return 0;
}


TEST_IMPL(pipe_connect_to_file) {
const char* path = "test/fixtures/empty_file";
uv_pipe_t client;
uv_connect_t req;
int r;

r = uv_pipe_init(uv_default_loop(), &client, 0);
ASSERT(r == 0);
uv_pipe_connect(&req, &client, path, connect_cb_file);

uv_run(uv_default_loop());

ASSERT(close_cb_called == 1);
ASSERT(connect_cb_called == 1);

return 0;
}

0 comments on commit 9be20af

Please sign in to comment.