mirror of
https://github.com/deneraraujo/OpenVPNAdapter.git
synced 2026-04-24 00:00:05 +08:00
Merge commit 'f65d76170b26155358c2fc27686f87e0475f6a94' as 'OpenVPN Adapter/Vendors/openvpn'
This commit is contained in:
+15
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
if [ -z "$O3" ]; then
|
||||
echo O3 var must point to ovpn3 tree
|
||||
exit 1
|
||||
fi
|
||||
|
||||
[ -z "$DL" ] && DL=~/Downloads
|
||||
|
||||
. $O3/core/deps/lib-versions
|
||||
|
||||
rm -rf asio*
|
||||
tar xf $DL/$ASIO_VERSION.tar.gz
|
||||
cp -a $ASIO_VERSION asio
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
From 430862dee0dd960be1f702cc5ae0e7c0525d48a4 Mon Sep 17 00:00:00 2001
|
||||
From: James Yonan <james@openvpn.net>
|
||||
Date: Wed, 3 Aug 2016 11:42:38 -0600
|
||||
Subject: =?UTF-8?q?Added=20Apple=20NAT64=20support=20when=20both=20ASIO=5F?=
|
||||
=?UTF-8?q?HAS=5FGETADDRINFO=0Aand=20ASIO=5FAPPLE=5FNAT64=20are=20defined.?=
|
||||
|
||||
* When calling getaddrinfo(), Apple recommends to set
|
||||
AI_DEFAULT flags in hint.
|
||||
|
||||
* iOS bug workaround: sometimes iOS getaddrinfo() returns a
|
||||
non-zero scope ID for non-link-local addresses.
|
||||
Workaround by forcing scope ID to 0 for non-link-local
|
||||
addresses.
|
||||
---
|
||||
asio/include/asio/detail/impl/socket_ops.ipp | 17 +++++++++++++++++
|
||||
1 file changed, 17 insertions(+)
|
||||
|
||||
diff --git a/asio/include/asio/detail/impl/socket_ops.ipp b/asio/include/asio/detail/impl/socket_ops.ipp
|
||||
index d72afec..4f66c77 100644
|
||||
--- a/asio/include/asio/detail/impl/socket_ops.ipp
|
||||
+++ b/asio/include/asio/detail/impl/socket_ops.ipp
|
||||
@@ -3276,6 +3276,23 @@ asio::error_code getaddrinfo(const char* host,
|
||||
#elif !defined(ASIO_HAS_GETADDRINFO)
|
||||
int error = getaddrinfo_emulation(host, service, &hints, result);
|
||||
return ec = translate_addrinfo_error(error);
|
||||
+#elif defined(ASIO_HAS_GETADDRINFO) && defined(ASIO_APPLE_NAT64)
|
||||
+ // For NAT64 compatibility, Apple recommends to set AI_DEFAULT flags
|
||||
+ addrinfo_type new_hints = hints;
|
||||
+ new_hints.ai_flags |= AI_DEFAULT;
|
||||
+ int error = ::getaddrinfo(host, service, &new_hints, result);
|
||||
+
|
||||
+ // iOS bug workaround: sometimes iOS getaddrinfo() returns a non-zero scope ID
|
||||
+ // for non-link-local addresses. Workaround by forcing scope ID to 0 for
|
||||
+ // non-link-local addresses.
|
||||
+ if (!error && (*result)->ai_family == AF_INET6)
|
||||
+ {
|
||||
+ sockaddr_in6* a6 = (sockaddr_in6*)(*result)->ai_addr;
|
||||
+ if (a6->sin6_scope_id && !(IN6_IS_ADDR_LINKLOCAL(&a6->sin6_addr) || IN6_IS_ADDR_MC_NODELOCAL(&a6->sin6_addr) || IN6_IS_ADDR_MC_LINKLOCAL(&a6->sin6_addr)))
|
||||
+ a6->sin6_scope_id = 0;
|
||||
+ }
|
||||
+
|
||||
+ return ec = translate_addrinfo_error(error);
|
||||
#else
|
||||
int error = ::getaddrinfo(host, service, &hints, result);
|
||||
return ec = translate_addrinfo_error(error);
|
||||
--
|
||||
1.8.5.2 (Apple Git-48)
|
||||
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
From d1758fee525c6adde63ff13df1ce00c63a9b7671 Mon Sep 17 00:00:00 2001
|
||||
From: James Yonan <james@openvpn.net>
|
||||
Date: Wed, 2 Sep 2015 12:18:48 -0700
|
||||
Subject: Added randomize() method to asio::ip::tcp::resolver::results_type.
|
||||
|
||||
---
|
||||
asio/include/asio/ip/basic_resolver_results.hpp | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/asio/include/asio/ip/basic_resolver_results.hpp b/asio/include/asio/ip/basic_resolver_results.hpp
|
||||
index dec2c7e..ae36906 100644
|
||||
--- a/asio/include/asio/ip/basic_resolver_results.hpp
|
||||
+++ b/asio/include/asio/ip/basic_resolver_results.hpp
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "asio/detail/config.hpp"
|
||||
#include <cstddef>
|
||||
#include <cstring>
|
||||
+#include <algorithm>
|
||||
#include "asio/detail/socket_ops.hpp"
|
||||
#include "asio/detail/socket_types.hpp"
|
||||
#include "asio/ip/basic_resolver_iterator.hpp"
|
||||
@@ -299,6 +300,12 @@ public:
|
||||
return !a.equal(b);
|
||||
}
|
||||
|
||||
+ template <typename Random>
|
||||
+ void randomize(Random& r)
|
||||
+ {
|
||||
+ std::shuffle(this->values_->begin(), this->values_->end(), r);
|
||||
+ }
|
||||
+
|
||||
private:
|
||||
typedef std::vector<basic_resolver_entry<InternetProtocol> > values_type;
|
||||
};
|
||||
--
|
||||
1.8.5.2 (Apple Git-48)
|
||||
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
From 48f2e874280f0d93d1a3df2e48aacc9e13b8eef5 Mon Sep 17 00:00:00 2001
|
||||
From: James Yonan <james@openvpn.net>
|
||||
Date: Wed, 1 Mar 2017 13:45:38 -0700
|
||||
Subject: Android appears to not support pthread_condattr_setclock
|
||||
|
||||
---
|
||||
asio/include/asio/detail/impl/posix_event.ipp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/asio/include/asio/detail/impl/posix_event.ipp b/asio/include/asio/detail/impl/posix_event.ipp
|
||||
index a62c434..c4b7982 100644
|
||||
--- a/asio/include/asio/detail/impl/posix_event.ipp
|
||||
+++ b/asio/include/asio/detail/impl/posix_event.ipp
|
||||
@@ -31,7 +31,7 @@ namespace detail {
|
||||
posix_event::posix_event()
|
||||
: state_(0)
|
||||
{
|
||||
-#if (defined(__MACH__) && defined(__APPLE__))
|
||||
+#if (defined(__MACH__) && defined(__APPLE__)) || defined(__ANDROID__)
|
||||
int error = ::pthread_cond_init(&cond_, 0);
|
||||
#else // (defined(__MACH__) && defined(__APPLE__))
|
||||
::pthread_condattr_t attr;
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
From 630edbebfc2f77ad29480d884e20d0b767883ac2 Mon Sep 17 00:00:00 2001
|
||||
From: James Yonan <james@openvpn.net>
|
||||
Date: Mon, 27 Feb 2017 13:01:26 -0700
|
||||
Subject: =?UTF-8?q?Added=20user=20code=20hook=20async=5Fconnect=5Fpost=5Fo?=
|
||||
=?UTF-8?q?pen()=20to=20be=20called=0Aimmediately=20after=20socket=20open?=
|
||||
=?UTF-8?q?=20in=20async=5Fconnect.?=
|
||||
|
||||
---
|
||||
asio/include/asio/basic_socket.hpp | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/asio/include/asio/basic_socket.hpp b/asio/include/asio/basic_socket.hpp
|
||||
index cbd9b35..dbc9297 100644
|
||||
--- a/asio/include/asio/basic_socket.hpp
|
||||
+++ b/asio/include/asio/basic_socket.hpp
|
||||
@@ -866,6 +866,8 @@ public:
|
||||
asio::error_code ec;
|
||||
const protocol_type protocol = peer_endpoint.protocol();
|
||||
this->get_service().open(this->get_implementation(), protocol, ec);
|
||||
+ if (!ec)
|
||||
+ async_connect_post_open(protocol, ec);
|
||||
if (ec)
|
||||
{
|
||||
async_completion<ConnectHandler,
|
||||
@@ -1742,6 +1744,11 @@ protected:
|
||||
}
|
||||
|
||||
private:
|
||||
+ // optional user code hook immediately after socket open in async_connect
|
||||
+ virtual void async_connect_post_open(const protocol_type& protocol, asio::error_code& ec)
|
||||
+ {
|
||||
+ }
|
||||
+
|
||||
// Disallow copying and assignment.
|
||||
basic_socket(const basic_socket&) ASIO_DELETED;
|
||||
basic_socket& operator=(const basic_socket&) ASIO_DELETED;
|
||||
--
|
||||
1.8.5.2 (Apple Git-48)
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
export NAME=asio
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
$DIR/../../scripts/snapshot
|
||||
Reference in New Issue
Block a user