mirror of
https://github.com/deneraraujo/OpenVPNAdapter.git
synced 2026-04-24 00:00:05 +08:00
Squashed 'OpenVPN Adapter/Vendors/openvpn/' changes from da99df6..4095565
4095565 OpenVPN 3 client: added tun abstraction layer. 4bfaafc AsioTimer: use expires_after() method when possible. 782e8eb Apple: moved some source files. f89da96 OpenVPN 3 client: added single-thread mode: 233dfde OpenVPN 3 client: fixed state->session typos. d689b6d Added new Apple Core Foundation wrappers: 3838a62 i/o layer: added OPENVPN_IO_REQUIRES_STOP compile flag. 138ec96 asiopolysock.hpp: don't call SockOpt::set_cloexec(fd) if fd is undefined (i.e. fd == -1). 10eb723 Apple CF wrapper: renamed OWN/BORROW. 962fe87 Apple CF wrapper: simplify cf.hpp dependency profile. 4fcc99c Objective C++: fix symbol conflicts. 8f63cbb tunwrapasio.hpp: make generic with respect to i/o layer. 67e0013 AsioTimer: added expires_after() method. fc7eaaf Apple CF wrappers: moved CFRunLoop/CFRunLoopSource wrapper to applecrypto/cf, where all other CF wrappers currently reside. 1215912 Revamped Function (our own functor object) to be more flexible. 10fa276 process.hpp: added compile option to avoid async pipe usage. 9e09451 gwv4.hpp: added missing includes 916856d build script: updated Objective-C support when OBJC=1. git-subtree-dir: OpenVPN Adapter/Vendors/openvpn git-subtree-split: 4095565b4de2c7d738e728cae989f632100a8ce8
This commit is contained in:
Vendored
+45
@@ -0,0 +1,45 @@
|
||||
// OpenVPN -- An application to securely tunnel IP networks
|
||||
// over a single port, with support for SSL/TLS-based
|
||||
// session authentication and key exchange,
|
||||
// packet encryption, packet authentication, and
|
||||
// packet compression.
|
||||
//
|
||||
// Copyright (C) 2012-2017 OpenVPN Technologies, Inc.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License Version 3
|
||||
// as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program in the COPYING file.
|
||||
// If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef OPENVPN_TUN_EXTERN_CONFIG_H
|
||||
#define OPENVPN_TUN_EXTERN_CONFIG_H
|
||||
|
||||
// These includes are also intended to resolve forward references in fw.hpp
|
||||
#include <openvpn/common/options.hpp>
|
||||
#include <openvpn/tun/client/tunbase.hpp>
|
||||
#include <openvpn/tun/client/tunprop.hpp>
|
||||
#include <openvpn/frame/frame.hpp>
|
||||
#include <openvpn/log/sessionstats.hpp>
|
||||
#include <openvpn/common/stop.hpp>
|
||||
|
||||
namespace openvpn {
|
||||
namespace ExternalTun {
|
||||
struct Config
|
||||
{
|
||||
TunProp::Config tun_prop;
|
||||
Frame::Ptr frame;
|
||||
SessionStats::Ptr stats;
|
||||
Stop* stop = nullptr;
|
||||
bool tun_persist = false;
|
||||
};
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Vendored
+49
@@ -0,0 +1,49 @@
|
||||
// OpenVPN -- An application to securely tunnel IP networks
|
||||
// over a single port, with support for SSL/TLS-based
|
||||
// session authentication and key exchange,
|
||||
// packet encryption, packet authentication, and
|
||||
// packet compression.
|
||||
//
|
||||
// Copyright (C) 2012-2017 OpenVPN Technologies, Inc.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License Version 3
|
||||
// as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program in the COPYING file.
|
||||
// If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#ifndef OPENVPN_TUN_EXTERN_FW_H
|
||||
#define OPENVPN_TUN_EXTERN_FW_H
|
||||
|
||||
namespace openvpn {
|
||||
|
||||
#if defined(OPENVPN_EXTERNAL_TUN_FACTORY)
|
||||
|
||||
struct TunClientFactory;
|
||||
class OptionList;
|
||||
|
||||
namespace ExternalTun {
|
||||
struct Config; // defined in config.hpp
|
||||
struct Factory
|
||||
{
|
||||
virtual TunClientFactory* new_tun_factory(const Config& conf, const OptionList& opt) = 0;
|
||||
virtual ~Factory() {}
|
||||
};
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
namespace ExternalTun {
|
||||
struct Factory {};
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
@@ -29,9 +29,9 @@ namespace openvpn {
|
||||
{
|
||||
public:
|
||||
enum Type {
|
||||
NO,
|
||||
YES,
|
||||
DEFAULT,
|
||||
No,
|
||||
Yes,
|
||||
Default,
|
||||
};
|
||||
|
||||
IPv6Setting()
|
||||
@@ -49,11 +49,11 @@ namespace openvpn {
|
||||
{
|
||||
switch (type_)
|
||||
{
|
||||
case NO:
|
||||
case No:
|
||||
return "no";
|
||||
case YES:
|
||||
case Yes:
|
||||
return "yes";
|
||||
case DEFAULT:
|
||||
case Default:
|
||||
default:
|
||||
return "default";
|
||||
}
|
||||
@@ -62,11 +62,11 @@ namespace openvpn {
|
||||
static IPv6Setting parse(const std::string& str)
|
||||
{
|
||||
if (str == "no")
|
||||
return IPv6Setting(NO);
|
||||
return IPv6Setting(No);
|
||||
else if (str == "yes")
|
||||
return IPv6Setting(YES);
|
||||
return IPv6Setting(Yes);
|
||||
else if (str == "default")
|
||||
return IPv6Setting(DEFAULT);
|
||||
return IPv6Setting(Default);
|
||||
else
|
||||
throw Exception("IPv6Setting: unrecognized setting: '" + str + '\'');
|
||||
}
|
||||
@@ -82,7 +82,7 @@ namespace openvpn {
|
||||
}
|
||||
|
||||
private:
|
||||
Type type_ = DEFAULT;
|
||||
Type type_ = Default;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -26,8 +26,10 @@
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <netinet/in.h>
|
||||
#include <net/route.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_dl.h>
|
||||
|
||||
#include <cstring>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#include <openvpn/common/process.hpp>
|
||||
#include <openvpn/apple/macver.hpp>
|
||||
#include <openvpn/apple/scdynstore.hpp>
|
||||
#include <openvpn/applecrypto/cf/cfhelper.hpp>
|
||||
#include <openvpn/apple/cf/cfhelper.hpp>
|
||||
#include <openvpn/tun/builder/capture.hpp>
|
||||
|
||||
namespace openvpn {
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
|
||||
#include <openvpn/log/logthread.hpp>
|
||||
#include <openvpn/common/action.hpp>
|
||||
#include <openvpn/applecrypto/cf/cftimer.hpp>
|
||||
#include <openvpn/apple/runloop.hpp>
|
||||
#include <openvpn/apple/cf/cftimer.hpp>
|
||||
#include <openvpn/apple/cf/cfrunloop.hpp>
|
||||
#include <openvpn/tun/mac/macdns.hpp>
|
||||
|
||||
namespace openvpn {
|
||||
@@ -183,7 +183,7 @@ namespace openvpn {
|
||||
// as well.
|
||||
void thread_func()
|
||||
{
|
||||
runloop.reset(CFRunLoopGetCurrent(), CF::BORROW);
|
||||
runloop.reset(CFRunLoopGetCurrent(), CF::GET);
|
||||
Log::Context logctx(logwrap);
|
||||
|
||||
try {
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include <openvpn/common/exception.hpp>
|
||||
#include <openvpn/addr/ip.hpp>
|
||||
#include <openvpn/apple/scdynstore.hpp>
|
||||
#include <openvpn/applecrypto/cf/cfhelper.hpp>
|
||||
#include <openvpn/apple/cf/cfhelper.hpp>
|
||||
|
||||
namespace openvpn {
|
||||
struct MacGWInfo
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
#ifndef OPENVPN_TUN_PERSIST_TUNWRAPASIO_H
|
||||
#define OPENVPN_TUN_PERSIST_TUNWRAPASIO_H
|
||||
|
||||
#include <utility>
|
||||
|
||||
namespace openvpn {
|
||||
|
||||
// This object supports that subset of the Asio stream
|
||||
@@ -48,17 +50,14 @@ namespace openvpn {
|
||||
// subset of methods used by TunIO).
|
||||
// Prototypes from asio/windows/basic_stream_handle.hpp
|
||||
|
||||
template <typename MutableBufferSequence, typename ReadHandler>
|
||||
ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
||||
void (openvpn_io::error_code, std::size_t))
|
||||
async_read_some(const MutableBufferSequence& buffers,
|
||||
ASIO_MOVE_ARG(ReadHandler) handler)
|
||||
template <typename MUTABLE_BUFFER, typename HANDLER>
|
||||
void async_read_some(const MUTABLE_BUFFER& buffers, HANDLER&& handler)
|
||||
{
|
||||
return tun_wrap->obj()->async_read_some(buffers, handler);
|
||||
return tun_wrap->obj()->async_read_some(buffers, std::move(handler));
|
||||
}
|
||||
|
||||
template <typename ConstBufferSequence>
|
||||
std::size_t write_some(const ConstBufferSequence& buffers)
|
||||
template <typename CONST_BUFFER>
|
||||
std::size_t write_some(const CONST_BUFFER& buffers)
|
||||
{
|
||||
return tun_wrap->obj()->write_some(buffers);
|
||||
}
|
||||
|
||||
@@ -388,7 +388,7 @@ namespace openvpn {
|
||||
|
||||
void layer_2_schedule_timer(const unsigned int seconds)
|
||||
{
|
||||
l2_timer.expires_at(Time::now() + Time::Duration::seconds(seconds));
|
||||
l2_timer.expires_after(Time::Duration::seconds(seconds));
|
||||
l2_timer.async_wait([self=Ptr(this)](const openvpn_io::error_code& error)
|
||||
{
|
||||
if (!error && !self->halt)
|
||||
|
||||
Reference in New Issue
Block a user