aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSebastian Blunt <git@sebastianblunt.com>2022-04-15 23:48:50 -0700
committerSebastian Blunt <git@sebastianblunt.com>2022-04-15 23:59:33 -0700
commitfe903fb7c59600f7679b2afb0d33f4a0c3f93ae2 (patch)
treea260fe6ecba14ce33ce0892ee0bef3e8bd88eb50 /include
parentb2c59887a2eeb74d331e3321e0de9e154cb8be13 (diff)
downloadportable-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 'include')
-rw-r--r--include/compat/sys/socket.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/compat/sys/socket.h b/include/compat/sys/socket.h
index 10eb05f..2f0b197 100644
--- a/include/compat/sys/socket.h
+++ b/include/compat/sys/socket.h
@@ -10,6 +10,7 @@
10#endif 10#endif
11 11
12#if !defined(SOCK_NONBLOCK) || !defined(SOCK_CLOEXEC) 12#if !defined(SOCK_NONBLOCK) || !defined(SOCK_CLOEXEC)
13#define NEED_SOCKET_FLAGS
13#define SOCK_CLOEXEC 0x8000 /* set FD_CLOEXEC */ 14#define SOCK_CLOEXEC 0x8000 /* set FD_CLOEXEC */
14#define SOCK_NONBLOCK 0x4000 /* set O_NONBLOCK */ 15#define SOCK_NONBLOCK 0x4000 /* set O_NONBLOCK */
15int bsd_socketpair(int domain, int type, int protocol, int socket_vector[2]); 16int bsd_socketpair(int domain, int type, int protocol, int socket_vector[2]);