aboutsummaryrefslogtreecommitdiff
path: root/apps
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 /apps
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 '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)