mirror of
https://github.com/OpenVPN/openvpn3.git
synced 2024-09-19 19:52:15 +02:00
ovpncli: bring tunbuilder variant back to life
Signed-off-by: Lev Stipakov <lev@openvpn.net>
This commit is contained in:
parent
253dc4bf98
commit
ce68e3c415
@ -49,6 +49,16 @@
|
||||
"CMAKE_CXX_COMPILER": "/usr/bin/g++"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tunbuilder",
|
||||
"hidden": true,
|
||||
"cacheVariables": {
|
||||
"CLI_TUNBUILDER": {
|
||||
"value": "ON",
|
||||
"type": "BOOL"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "base-mingw",
|
||||
"hidden": true,
|
||||
@ -267,6 +277,14 @@
|
||||
"base-linux",
|
||||
"release"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "linux-x64-debug-tunbuilder",
|
||||
"inherits": [
|
||||
"base-linux",
|
||||
"debug",
|
||||
"tunbuilder"
|
||||
]
|
||||
}
|
||||
],
|
||||
"buildPresets": [
|
||||
@ -334,6 +352,11 @@
|
||||
"name": "linux-x64-release",
|
||||
"configurePreset": "linux-x64-release",
|
||||
"configuration": "Release"
|
||||
},
|
||||
{
|
||||
"name": "linux-x64-debug-tunbuilder",
|
||||
"configurePreset": "linux-x64-debug-tunbuilder",
|
||||
"configuration": "Debug"
|
||||
}
|
||||
],
|
||||
"testPresets": [
|
||||
|
@ -3,6 +3,7 @@ option(CLI_NULLTUN "Build ovpncli variant with null tun" OFF)
|
||||
option(CLI_KOVPN "Build ovpncli variant with kovpn kernel module support" OFF)
|
||||
option(CLI_OVPNDCO "Build ovpncli with ovpn-dco kernel module support" OFF)
|
||||
option(CLI_OVPNDCOWIN "Build ovpncli with ovpn-dco-win driver support" OFF)
|
||||
option(CLI_TUNBUILDER "Build ovpncli with tunbuilder interface support" OFF)
|
||||
|
||||
set(KOVPN_SOURCE "${CORE_DIR}/../kovpn" CACHE PATH "ovpn-dco kernel module source tree")
|
||||
|
||||
@ -76,3 +77,7 @@ if (APPLE)
|
||||
add_json_library(ovpncliagent)
|
||||
target_compile_definitions(ovpncliagent PRIVATE -DOPENVPN_COMMAND_AGENT)
|
||||
endif ()
|
||||
|
||||
if (${CLI_TUNBUILDER})
|
||||
target_compile_definitions(ovpncli PRIVATE USE_TUN_BUILDER)
|
||||
endif ()
|
||||
|
@ -123,16 +123,12 @@ class ClientBase : public ClientAPI::OpenVPNClient
|
||||
public:
|
||||
bool tun_builder_new() override
|
||||
{
|
||||
tbc.tun_builder_set_mtu(1500);
|
||||
return true;
|
||||
}
|
||||
|
||||
int tun_builder_establish() override
|
||||
{
|
||||
if (!tun)
|
||||
{
|
||||
tun.reset(new TUN_CLASS_SETUP());
|
||||
}
|
||||
tun.reset(new TUN_CLASS_SETUP());
|
||||
|
||||
TUN_CLASS_SETUP::Config config;
|
||||
config.layer = Layer(Layer::Type::OSI_LAYER_3);
|
||||
@ -197,6 +193,16 @@ class ClientBase : public ClientAPI::OpenVPNClient
|
||||
return tun->add_bypass_route(remote, ipv6, os);
|
||||
}
|
||||
|
||||
bool tun_builder_add_dns_options(const DnsOptions &dns) override
|
||||
{
|
||||
return tbc.tun_builder_add_dns_options(dns);
|
||||
}
|
||||
|
||||
bool tun_builder_set_mtu(int mtu) override
|
||||
{
|
||||
return tbc.tun_builder_set_mtu(mtu);
|
||||
}
|
||||
|
||||
private:
|
||||
TUN_CLASS_SETUP::Ptr tun = new TUN_CLASS_SETUP();
|
||||
TunBuilderCapture tbc;
|
||||
|
Loading…
Reference in New Issue
Block a user