History log of /libuv/src/unix/pipe.c (Results 1 – 25 of 89)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 1eac3310 10-Aug-2024 Ben Noordhuis

linux: support abstract unix socket autobinding (#4499)

Autobinding is a feature that lets the kernel pick a name for the
abstract socket, instead of userspace having to provide one.

linux: support abstract unix socket autobinding (#4499)

Autobinding is a feature that lets the kernel pick a name for the
abstract socket, instead of userspace having to provide one.

Two bugs that this change exposed are also fixed:

1. strlen(sa.sun_path) can read past the end if the file path is exactly
sizeof(sa.sun_path) long (use memchr instead), and

2. don't return UV_ENOBUFS for abstract sockets when the buffer is
exactly large enough to hold the result; per commit e5f4b79809,
abstract socket names are not zero-terminated

show more ...


# c8d4a87f 21-May-2024 Andy Pan

bsd: support pipe2() on *BSD (#4412)

---------

Signed-off-by: Andy Pan <i@andypan.me>


# 1dd0ab13 25-Dec-2023 Santiago Gimeno

linux: fix bind/connect for abstract sockets (#4266)

The `\0` character has no special significance in abstract sockets, so
the addrlen field in both `bind()` and `connect()` should take

linux: fix bind/connect for abstract sockets (#4266)

The `\0` character has no special significance in abstract sockets, so
the addrlen field in both `bind()` and `connect()` should take that into
account.

show more ...


# 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 ...


# 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 ...


# 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 ...


# acfe668e 18-Oct-2022 Ben Noordhuis

build: add MemorySanitizer (MSAN) support (#3788)

- unpoison results from linux system call wrappers

- unpoison results from stat/fstat/lstat to pacify clang 14
(fixed in late

build: add MemorySanitizer (MSAN) support (#3788)

- unpoison results from linux system call wrappers

- unpoison results from stat/fstat/lstat to pacify clang 14
(fixed in later versions)

- add MSAN build option

- turn on MSAN CI build

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 ...


# 5ec89b8c 10-Mar-2022 V-for-Vasili

aix, ibmi: handle server hang when remote sends TCP RST (#3482)

Workaround getsockname() not working for a TCP handle that has
received RST from the remote.

Co-authored-by: Jame

aix, ibmi: handle server hang when remote sends TCP RST (#3482)

Workaround getsockname() not working for a TCP handle that has
received RST from the remote.

Co-authored-by: Jameson Nash <vtjnash@gmail.com>

show more ...


# d54c92e3 15-Feb-2022 Jameson Nash

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

Internal functions usually have a uv__ prefix.


Revision tags: v1.41.0
# 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 ...

Revision tags: 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
# a6296880 29-Nov-2019 Witold Kręcicki

pipe: disallow listening on an IPC pipe

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

# 1b045d46 20-Jan-2020 Xu Meng

ibmi: ensure that pipe backlog is not zero

On IBMi PASE, listen(pipe_fd, backlog=0) leads to "Connection refused" error

PR-URL: https://github.com/libuv/libuv/pull/2641
Reviewed

ibmi: ensure that pipe backlog is not zero

On IBMi PASE, listen(pipe_fd, backlog=0) leads to "Connection refused" error

PR-URL: https://github.com/libuv/libuv/pull/2641
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

show more ...

Revision tags: v1.33.1, v1.33.0
# 0ff717e3 25-Sep-2019 MaYuming

build: fix build warning on cygwin

Signed-off-by: MaYuming <maym@appexnetworks.com>
PR-URL: https://github.com/libuv/libuv/pull/2489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

build: fix build warning on cygwin

Signed-off-by: MaYuming <maym@appexnetworks.com>
PR-URL: https://github.com/libuv/libuv/pull/2489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <s@saghul.net>

show more ...

Revision tags: 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
# 90415a33 20-Mar-2017 Santiago Gimeno

udp: add support for UDP connected sockets

Add two new methods:

`uv_udp_connect()` to connect / disconnect an UDP handle.
`uv_udp_getpeername()` to get the remote peer address o

udp: add support for UDP connected sockets

Add two new methods:

`uv_udp_connect()` to connect / disconnect an UDP handle.
`uv_udp_getpeername()` to get the remote peer address of a connected UDP
handle.

Modify `uv_udp_send()` and `uv_udp_try_send()` to accept a `NULL` `addr`
to send messages over an "UDP connection".

Refs: https://github.com/libuv/leps/pull/10
PR-URL: https://github.com/libuv/libuv/pull/1872
Backport-PR-URL: https://github.com/libuv/libuv/pull/2217
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

show more ...

# d16897c4 31-May-2018 Santiago Gimeno

unix: refactor getsockname/getpeername methods

PR-URL: https://github.com/libuv/libuv/pull/1872
Backport-PR-URL: https://github.com/libuv/libuv/pull/2217
Reviewed-By: Saúl Ibarra Cor

unix: refactor getsockname/getpeername methods

PR-URL: https://github.com/libuv/libuv/pull/1872
Backport-PR-URL: https://github.com/libuv/libuv/pull/2217
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>

show more ...

# f66eda7c 31-Jan-2019 yeyuanfeng

unix: fix epoll cpu 100% issue

Fixes: https://github.com/libuv/libuv/issues/2162
PR-URL: https://github.com/libuv/libuv/pull/2166
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>

unix: fix epoll cpu 100% issue

Fixes: https://github.com/libuv/libuv/issues/2162
PR-URL: https://github.com/libuv/libuv/pull/2166
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Li YuBei <leeight@gmail.com>
Reviewed-By: Jameson Nash <vtjnash@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

show more ...

# 8972e65b 03-Dec-2018 Ben Noordhuis

unix: harden string copying, introduce strscpy()

Replace calls to strcpy() and strncpy() with the newly introduced
uv__strscpy() function that is meticulous about zero-terminating
th

unix: harden string copying, introduce strscpy()

Replace calls to strcpy() and strncpy() with the newly introduced
uv__strscpy() function that is meticulous about zero-terminating
the destination buffer.

PR-URL: https://github.com/libuv/libuv/pull/2065
Refs: https://www.kernel.org/doc/htmldocs/kernel-api/API-strscpy.html
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>

show more ...

# 40498795 28-Aug-2018 Jameson Nash

stream: autodetect direction

Previously, we required the user to specify the expected read/write
flags for a pipe or tty. But we've already been asking the OS to tell us
what they ac

stream: autodetect direction

Previously, we required the user to specify the expected read/write
flags for a pipe or tty. But we've already been asking the OS to tell us
what they actually are (fcntl F_GETFL), so we can hopefully just use
that information directly.

Fixes: https://github.com/libuv/libuv/issues/1936
PR-URL: https://github.com/libuv/libuv/pull/1964
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>

show more ...

# 619937c7 28-Jun-2018 Ben Noordhuis

unix,win: merge handle flags

Some long overdue refactoring that unifies more of the UNIX and Windows
backends.

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

unix,win: merge handle flags

Some long overdue refactoring that unifies more of the UNIX and Windows
backends.

PR-URL: https://github.com/libuv/libuv/pull/1904
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>

show more ...

# 2256be01 28-May-2018 Ben Noordhuis

unix: catch some cases of watching fd twice

Libuv does not support multiple handles watching the same file
descriptor. That condition is caught by an assert but it's detached
from t

unix: catch some cases of watching fd twice

Libuv does not support multiple handles watching the same file
descriptor. That condition is caught by an assert but it's detached
from the call site and therefore not always trivial to track down.

This commit turns cases where we can easily detect duplicates into
runtime `UV_EEXIST` errors. More work is needed to catch _all_ cases.

Partially addresses https://github.com/libuv/libuv/issues/1172.

PR-URL: https://github.com/libuv/libuv/pull/1851
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>

show more ...

# 19855c03 19-Nov-2017 zzzjim

unix: fix uv_pipe_chmod() on macOS

According to its man page, there is a bug in fstat()
on macOS related to pipes. This commit replaces a
fstat() call in uv_pipe_chmod() with a stat(

unix: fix uv_pipe_chmod() on macOS

According to its man page, there is a bug in fstat()
on macOS related to pipes. This commit replaces a
fstat() call in uv_pipe_chmod() with a stat() call in
order to get the correct permissions.

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

show more ...

# 89cbbc89 19-Jan-2018 Mason X

include,src: introduce UV__ERR() macro

Using -errno, -E**, and -pthread_function() can be
error prone, and breaks compatibility with some operating
systems that already negate errno'

include,src: introduce UV__ERR() macro

Using -errno, -E**, and -pthread_function() can be
error prone, and breaks compatibility with some operating
systems that already negate errno's (e.g. Haiku).

This commit adds a UV__ERR() macro that ensures libuv
errors are negative.

Fixes: https://github.com/libuv/help/issues/39
PR-URL: https://github.com/libuv/libuv/pull/1687
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>

show more ...

1234