diff options
| author | Sebastian Blunt <git@sebastianblunt.com> | 2022-04-15 23:48:50 -0700 |
|---|---|---|
| committer | Sebastian Blunt <git@sebastianblunt.com> | 2022-04-15 23:59:33 -0700 |
| commit | fe903fb7c59600f7679b2afb0d33f4a0c3f93ae2 (patch) | |
| tree | a260fe6ecba14ce33ce0892ee0bef3e8bd88eb50 /apps | |
| parent | b2c59887a2eeb74d331e3321e0de9e154cb8be13 (diff) | |
| download | portable-fe903fb7c59600f7679b2afb0d33f4a0c3f93ae2.tar.gz portable-fe903fb7c59600f7679b2afb0d33f4a0c3f93ae2.tar.bz2 portable-fe903fb7c59600f7679b2afb0d33f4a0c3f93ae2.zip | |
Fix unreachable nc portability shim
This fixes nc failing to run on darwin due to it incorrectly setting the
linux-specific SOCK_NONBLOCK flag on connect.
nc already had a portability shim in apps/nc/compat/sys/socket.h, which
kicks in if SOCK_NONBLOCK is undefined. But that header includes
include/compat/sys/socket.h, which also has a portability shim that
defines a default value for SOCK_NONBLOCK if it's undefined. Thus the
first portability shim was unreachable.
Fixes this by moving the NEED_SOCKET_FLAGS flag into the outer shim, and
having the inner shim activate if NEED_SOCKET_FLAGS is defined.
This closes https://github.com/libressl-portable/portable/issues/631
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/nc/compat/sys/socket.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/apps/nc/compat/sys/socket.h b/apps/nc/compat/sys/socket.h index 13eb380..2c7ee4f 100644 --- a/apps/nc/compat/sys/socket.h +++ b/apps/nc/compat/sys/socket.h | |||
| @@ -6,8 +6,7 @@ | |||
| 6 | #ifndef _WIN32 | 6 | #ifndef _WIN32 |
| 7 | #include_next <sys/socket.h> | 7 | #include_next <sys/socket.h> |
| 8 | 8 | ||
| 9 | #if !defined(SOCK_NONBLOCK) || !defined(SOCK_CLOEXEC) | 9 | #if defined(NEED_SOCKET_FLAGS) |
| 10 | #define NEED_SOCKET_FLAGS | ||
| 11 | int _socket(int domain, int type, int protocol); | 10 | int _socket(int domain, int type, int protocol); |
| 12 | #ifndef SOCKET_FLAGS_PRIV | 11 | #ifndef SOCKET_FLAGS_PRIV |
| 13 | #define socket(d, t, p) _socket(d, t, p) | 12 | #define socket(d, t, p) _socket(d, t, p) |
