aboutsummaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorSebastian Blunt <git@sebastianblunt.com>2022-04-15 23:48:50 -0700
committerBrent Cook <busterb@gmail.com>2022-04-19 15:09:56 -0500
commitc35f5f1ded049e7e439d0b5645904050aeb28097 (patch)
tree59d6c72e518f0013f3eda35d6df190c2a7ae77f0 /apps
parentac56ad740a305476dbd7e1084ea0e60d6389b1d8 (diff)
downloadportable-c35f5f1ded049e7e439d0b5645904050aeb28097.tar.gz
portable-c35f5f1ded049e7e439d0b5645904050aeb28097.tar.bz2
portable-c35f5f1ded049e7e439d0b5645904050aeb28097.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.h3
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
11int _socket(int domain, int type, int protocol); 10int _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)