History log of /libuv/src/win/pipe.c (Results 1 – 25 of 177)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 8a499e13 22-Dec-2023 Matheus Izvekov

win: stop using deprecated names (#4253)


# 6be130e1 16-Nov-2023 Ben Noordhuis

unix,win: fix read past end of pipe name buffer (#4209)

Passing a socket name without a trailing nul byte to uv_pipe_bind2() or
(on Windows) uv_pipe_connect2() resulted in reading beyond

unix,win: fix read past end of pipe name buffer (#4209)

Passing a socket name without a trailing nul byte to uv_pipe_bind2() or
(on Windows) uv_pipe_connect2() resulted in reading beyond the end of
the name buffer when copying or converting it.

Fix that by copying the socket name to temporary storage first and add
the trailing nul byte explicitly.

Add a check for embedded nul bytes in the socket name.

Fix a small memory leak in the Windows error path of uv_pipe_bind2().

show more ...


# 35da5ded 15-Nov-2023 Jameson Nash

win: remove check for UV_PIPE_NO_TRUNCATE (#4221)

There is no length at which this gets truncated on Windows. The
underlying file system will just not successfully connect to a longer

win: remove check for UV_PIPE_NO_TRUNCATE (#4221)

There is no length at which this gets truncated on Windows. The
underlying file system will just not successfully connect to a longer
path (in WTF-16 characters), which will return an error asynchronously
with the existing API.

Refs: #4040

show more ...


# d843b7cf 14-Nov-2023 Jameson Nash

pipe: add back error handling to connect / bind (#4202)

This was incorrectly dropped by #4030, where previously connecting to ""
might fail eventually, now instead it would return EINVAL

pipe: add back error handling to connect / bind (#4202)

This was incorrectly dropped by #4030, where previously connecting to ""
might fail eventually, now instead it would return EINVAL and then fail
to initialize the struct or call the callback.

show more ...


# f3889085 29-Oct-2023 Jameson Nash

misc: export WTF8 conversion utilities (#4021)

As promised in #2970, this attempts to migrate code to a common set of
utilities in a common place in the code and use them everywhere. Thi

misc: export WTF8 conversion utilities (#4021)

As promised in #2970, this attempts to migrate code to a common set of
utilities in a common place in the code and use them everywhere. This
also exports the functionality, since the Windows API with
WideCharToMultiByte is fairly verbose relative to what libuv and
libuv's clients typically need, so it is useful not to require clients
to reimplement this conversion logic unnecessarily (and because Windows
is not 64-bit ready here, but this implementation is.)

show more ...


# 2f1614b1 06-Jun-2023 Ben Noordhuis

unix,win: add UV_PIPE_NO_TRUNCATE flag (#4040)

Libuv's default behavior is to truncate long Unix socket paths. The flag
tells it to return an error instead.

Fixes: https://githu

unix,win: add UV_PIPE_NO_TRUNCATE flag (#4040)

Libuv's default behavior is to truncate long Unix socket paths. The flag
tells it to return an error instead.

Fixes: https://github.com/libuv/libuv/issues/4036

show more ...


# b9b6db05 04-Jun-2023 Ben Noordhuis

linux: support abstract unix sockets (#4030)

Add two new APIs for binding and connecting to abstract UNIX sockets.

Fixes: https://github.com/libuv/libuv/issues/4028


# 1b01b786 24-May-2023 Ben Noordhuis

unix,win: replace QUEUE with struct uv__queue (#4022)

Recent versions of gcc have started emitting warnings about the liberal
type casting inside the QUEUE macros. Although the warnings

unix,win: replace QUEUE with struct uv__queue (#4022)

Recent versions of gcc have started emitting warnings about the liberal
type casting inside the QUEUE macros. Although the warnings are false
positives, let's use them as the impetus to switch to a type-safer and
arguably cleaner approach.

Fixes: https://github.com/libuv/libuv/issues/4019

show more ...


# 07261493 17-May-2023 Santiago Gimeno

Revert "win: implement uv_try_write() for pipes(#3825 1/2)"

This reverts commit 244e0e20592f40fce87d573c9f7b6ff7f189c382.

For some reason this is breaking node.js IPC. I plan to inv

Revert "win: implement uv_try_write() for pipes(#3825 1/2)"

This reverts commit 244e0e20592f40fce87d573c9f7b6ff7f189c382.

For some reason this is breaking node.js IPC. I plan to investigate it
but we can let this for the next release.t

PR-URL: https://github.com/libuv/libuv/pull/4003

show more ...


# 03bb7037 17-May-2023 Santiago Gimeno

Revert "win: fixes in uv__pipe_try_write() (#3825 2/2)"

This reverts commit e1143f12657444c750e47ab3e1fb70ae6a030620.

For some reason this is breaking node.js IPC. I plan to investi

Revert "win: fixes in uv__pipe_try_write() (#3825 2/2)"

This reverts commit e1143f12657444c750e47ab3e1fb70ae6a030620.

For some reason this is breaking node.js IPC. I plan to investigate it
but we can let this for the next release.

PR-URL: https://github.com/libuv/libuv/pull/4003

show more ...


# e1143f12 20-Nov-2022 Santiago Gimeno

win: fixes in uv__pipe_try_write() (#3825 2/2)

Return `UV_EAGAIN` on `ERROR_OPERATION_ABORTED`.
Use the correct format for `overlapped.hEvent`.
Some refactoring to always wait for th

win: fixes in uv__pipe_try_write() (#3825 2/2)

Return `UV_EAGAIN` on `ERROR_OPERATION_ABORTED`.
Use the correct format for `overlapped.hEvent`.
Some refactoring to always wait for the overlapped result.
Modernize tests and some improvements.

show more ...


Revision tags: v1.41.0, v1.40.0, v1.39.0, v1.38.1, v1.38.0, v1.37.0, v1.36.0, v1.35.0, v1.34.2, v1.34.1, v1.34.0, v1.33.1, v1.33.0, v1.32.0, v1.31.0, v1.30.1, v1.30.0, v1.29.1, v1.29.0, v1.28.0, v1.27.0, v1.26.0, v1.25.0, v1.24.1, v1.24.0, v1.23.2, v1.23.1, v1.23.0, v1.22.0, v1.21.0, v1.20.3, v1.20.2, v1.20.1, v1.20.0, v1.19.2, v1.19.1, v1.19.0, v1.18.0, v1.17.0, v1.16.1, v1.16.0, v1.15.0, v1.14.1, v1.14.0, v1.13.1, v1.13.0, v1.12.0, v1.11.0, v1.10.2, v1.10.1, v1.10.0, v0.10.37
# 244e0e20 25-May-2016 Ben Noordhuis

win: implement uv_try_write() for pipes(#3825 1/2)


# 3706c4f8 09-Nov-2022 Santiago Gimeno

win,pipe: fixes in uv_pipe_connect()

Make unices and windows consistent when closing a pipe while it's
connecting so they all return `UV_ECANCELED`.

Avoid race condition between

win,pipe: fixes in uv_pipe_connect()

Make unices and windows consistent when closing a pipe while it's
connecting so they all return `UV_ECANCELED`.

Avoid race condition between `pipe_connect_thread_proc()` and `uv_close()` when
accessing `handle->name`.

Fixes: https://github.com/libuv/libuv/issues/3578

show more ...


# 357d28a2 21-Oct-2022 number201724

win,pipe: improve method of obtaining pid for ipc (#3765)

In the old version of uv_pipe_open, the parent process ID is used
always. If the open pipe is used in the same process, the pare

win,pipe: improve method of obtaining pid for ipc (#3765)

In the old version of uv_pipe_open, the parent process ID is used
always. If the open pipe is used in the same process, the parent
process will be obtained incorrectly.

Now we first get the client pid and compare it with its own pid. If it
is the same, then get the server pid. If the two are the same, then the
pipe is from the same process.

Fixes: https://github.com/libuv/libuv/issues/3766

show more ...


# 81264cfc 26-Sep-2022 number201724

win: fix uv__pipe_accept memory leak (#3767)


# 7bccb562 03-Aug-2022 Santiago Gimeno

unix,win: remove UV_HANDLE_SHUTTING flag (#3705)

Replace it with a `uv__is_stream_shutting()` macro that checks the
`shutdown_req` field.

It partially fixes: https://github.com/

unix,win: remove UV_HANDLE_SHUTTING flag (#3705)

Replace it with a `uv__is_stream_shutting()` macro that checks the
`shutdown_req` field.

It partially fixes: https://github.com/libuv/libuv/issues/3663.

show more ...


# ee970e38 11-Jul-2022 Jameson Nash

win,shutdown: improve how shutdown is dispatched (#3649)

Split this off from endgame, so that it can be handled separately and
earlier, rather than trying to detect inside endgame which

win,shutdown: improve how shutdown is dispatched (#3649)

Split this off from endgame, so that it can be handled separately and
earlier, rather than trying to detect inside endgame which case we are
in. There appear to be some race conditions on the `handle` field still
however, which this does not yet attempt to address.

show more ...


# 8bcd689c 11-Jun-2022 theanarkh <2923878201@qq.com>

tcp,pipe: fail `bind` or `listen` after `close` (#3641)

Return `UV_EINVAL` in `bind` and `listen` when `handle` is
`UV_HANDLE_CLOSING` or `UV_HANDLE_CLOSED`.

Fixes: https://gith

tcp,pipe: fail `bind` or `listen` after `close` (#3641)

Return `UV_EINVAL` in `bind` and `listen` when `handle` is
`UV_HANDLE_CLOSING` or `UV_HANDLE_CLOSED`.

Fixes: https://github.com/libuv/libuv/issues/3503

show more ...


# ec677354 13-May-2022 Jameson Nash

win,pipe: fix bugs with pipe resource lifetime management (#3611)

If `uv_close` was called while a connect was pending, we would fail to
release the resources for the connection, since w

win,pipe: fix bugs with pipe resource lifetime management (#3611)

If `uv_close` was called while a connect was pending, we would fail to
release the resources for the connection, since we had not yet set the
type of the struct.

Fix a thread data-race on slow connect path code: only permitted to
write to `req` on threads, as anything else causes data race
corruption.

There seemed be a small variety of other resource management bugs in
edge cases, which turned out to make this a lot larger than initially
expected.

Refs: https://github.com/libuv/libuv/pull/3598#issuecomment-1111513567

show more ...


# d54c92e3 15-Feb-2022 Jameson Nash

win: fix style nits [NFC] (#3474)

Internal functions usually have a uv__ prefix.


# b2614a10 25-Nov-2021 Jameson Nash

stream: permit read after seeing EOF (#3361)

On some streams (notably TTYs), it is permitted to continue reading
after getting EOF. So still stop reading on EOF, but allow the user to

stream: permit read after seeing EOF (#3361)

On some streams (notably TTYs), it is permitted to continue reading
after getting EOF. So still stop reading on EOF, but allow the user to
reset the stream and try to read again (which may just get EOF).

This relaxes the constraint added in ce15b8405e9d01e221f8390475deab4a40d26e38.
Refs: https://github.com/libuv/libuv/pull/3006

show more ...


# 5b007972 16-Oct-2021 ~locpyl-tidnyd <81016946+locpyl-tidnyd@users.noreply.github.com>

pipe: remove useless assertion (#3302)

This assertion was added when req->write_buffer was a pointer. It was
then checking that write_buffer itself was not NULL. Checking that .base

pipe: remove useless assertion (#3302)

This assertion was added when req->write_buffer was a pointer. It was
then checking that write_buffer itself was not NULL. Checking that .base
is not NULL is superfluous because WriteFile will return error 998
(ERROR_NO_ACCESS) if the input buffer is invalid. This assertion fires
on zero-length writes when base==NULL&&len==0.

show more ...


# 4ddc2927 10-Nov-2020 Jameson Nash

stream: add uv_pipe and uv_socketpair to the API

Equivalents of `pipe` and `socketpair` for cross-platform use.

PR-URL: https://github.com/libuv/libuv/pull/2953
Reviewed-By: San

stream: add uv_pipe and uv_socketpair to the API

Equivalents of `pipe` and `socketpair` for cross-platform use.

PR-URL: https://github.com/libuv/libuv/pull/2953
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>

show more ...

# 79c531cb 21-Aug-2020 Jameson Nash

nfci: address some style nits

PR-URL: https://github.com/libuv/libuv/pull/2954
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

# 7de386c5 01-Feb-2020 Jameson Nash

win,pipe: erase event_handle after deleting pointer

PR-URL: https://github.com/libuv/libuv/pull/2620
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>

12345678