Skip to content

Commit

Permalink
fix: socket inheritance
Browse files Browse the repository at this point in the history
  • Loading branch information
neko-para committed Mar 5, 2024
1 parent 0584ed5 commit 2820f0e
Show file tree
Hide file tree
Showing 4 changed files with 141 additions and 0 deletions.
14 changes: 14 additions & 0 deletions vcpkg-overlay/ports/boost-asio/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Automatically generated by scripts/boost/generate-ports.ps1

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO boostorg/asio
REF boost-1.83.0
SHA512 83e6f39a4b8e54c89e7e7d322acc9e52a83a2a37f45c834a0267f0dbc1219314ad008f4f97e4cddc0a0c15dbea1785681181cea2e903773bdb31176875e0af95
HEAD_REF master
PATCHES windows_alloca_header.patch
windows_handle_inheritance.patch
)

include(${CURRENT_INSTALLED_DIR}/share/boost-vcpkg-helpers/boost-modular-headers.cmake)
boost_modular_headers(SOURCE_PATH ${SOURCE_PATH})
99 changes: 99 additions & 0 deletions vcpkg-overlay/ports/boost-asio/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
{
"$comment": "Automatically generated by scripts/boost/generate-ports.ps1",
"name": "boost-asio",
"version": "1.83.0",
"description": "Boost asio module",
"homepage": "https://github.com/boostorg/asio",
"license": "BSL-1.0",
"dependencies": [
{
"name": "boost-align",
"version>=": "1.83.0"
},
{
"name": "boost-array",
"version>=": "1.83.0"
},
{
"name": "boost-assert",
"version>=": "1.83.0"
},
{
"name": "boost-bind",
"version>=": "1.83.0"
},
{
"name": "boost-chrono",
"version>=": "1.83.0"
},
{
"name": "boost-config",
"version>=": "1.83.0"
},
{
"name": "boost-context",
"platform": "!uwp & !emscripten",
"version>=": "1.83.0"
},
{
"name": "boost-core",
"version>=": "1.83.0"
},
{
"name": "boost-coroutine",
"platform": "!(arm & windows) & !uwp & !emscripten",
"version>=": "1.83.0"
},
{
"name": "boost-date-time",
"version>=": "1.83.0"
},
{
"name": "boost-exception",
"version>=": "1.83.0"
},
{
"name": "boost-function",
"version>=": "1.83.0"
},
{
"name": "boost-regex",
"version>=": "1.83.0"
},
{
"name": "boost-smart-ptr",
"version>=": "1.83.0"
},
{
"name": "boost-system",
"version>=": "1.83.0"
},
{
"name": "boost-throw-exception",
"version>=": "1.83.0"
},
{
"name": "boost-type-traits",
"version>=": "1.83.0"
},
{
"name": "boost-utility",
"version>=": "1.83.0"
},
{
"name": "boost-vcpkg-helpers",
"version>=": "1.83.0"
}
],
"features": {
"ssl": {
"description": "Build with SSL support",
"dependencies": [
{
"name": "openssl",
"platform": "!emscripten"
}
]
}
}
}
15 changes: 15 additions & 0 deletions vcpkg-overlay/ports/boost-asio/windows_alloca_header.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
diff --git a/include/boost/asio/detail/impl/socket_ops.ipp b/include/boost/asio/detail/impl/socket_ops.ipp
index 7d7c31f..d2cd468 100644
--- a/include/boost/asio/detail/impl/socket_ops.ipp
+++ b/include/boost/asio/detail/impl/socket_ops.ipp
@@ -27,6 +27,10 @@
#include <boost/asio/detail/socket_ops.hpp>
#include <boost/asio/error.hpp>

+#if defined(BOOST_ASIO_WINDOWS)
+#include <malloc.h>
+#endif
+
#if defined(BOOST_ASIO_WINDOWS_RUNTIME)
# include <codecvt>
# include <locale>
13 changes: 13 additions & 0 deletions vcpkg-overlay/ports/boost-asio/windows_handle_inheritance.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/socket_ops.ipp b/socket_ops.ipp
index 6e2b29b..d0ff1c7 100644
--- a/socket_ops.ipp
+++ b/socket_ops.ipp
@@ -1814,7 +1814,7 @@ socket_type socket(int af, int type, int protocol,
boost::system::error_code& ec)
{
#if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
- socket_type s = ::WSASocketW(af, type, protocol, 0, 0, WSA_FLAG_OVERLAPPED);
+ socket_type s = ::WSASocketW(af, type, protocol, 0, 0, WSA_FLAG_OVERLAPPED | WSA_FLAG_NO_HANDLE_INHERIT);
get_last_error(ec, s == invalid_socket);
if (s == invalid_socket)
return s;

0 comments on commit 2820f0e

Please sign in to comment.