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++"
|
"CMAKE_CXX_COMPILER": "/usr/bin/g++"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "tunbuilder",
|
||||||
|
"hidden": true,
|
||||||
|
"cacheVariables": {
|
||||||
|
"CLI_TUNBUILDER": {
|
||||||
|
"value": "ON",
|
||||||
|
"type": "BOOL"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "base-mingw",
|
"name": "base-mingw",
|
||||||
"hidden": true,
|
"hidden": true,
|
||||||
@ -267,6 +277,14 @@
|
|||||||
"base-linux",
|
"base-linux",
|
||||||
"release"
|
"release"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "linux-x64-debug-tunbuilder",
|
||||||
|
"inherits": [
|
||||||
|
"base-linux",
|
||||||
|
"debug",
|
||||||
|
"tunbuilder"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"buildPresets": [
|
"buildPresets": [
|
||||||
@ -334,6 +352,11 @@
|
|||||||
"name": "linux-x64-release",
|
"name": "linux-x64-release",
|
||||||
"configurePreset": "linux-x64-release",
|
"configurePreset": "linux-x64-release",
|
||||||
"configuration": "Release"
|
"configuration": "Release"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "linux-x64-debug-tunbuilder",
|
||||||
|
"configurePreset": "linux-x64-debug-tunbuilder",
|
||||||
|
"configuration": "Debug"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"testPresets": [
|
"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_KOVPN "Build ovpncli variant with kovpn kernel module support" OFF)
|
||||||
option(CLI_OVPNDCO "Build ovpncli with ovpn-dco 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_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")
|
set(KOVPN_SOURCE "${CORE_DIR}/../kovpn" CACHE PATH "ovpn-dco kernel module source tree")
|
||||||
|
|
||||||
@ -76,3 +77,7 @@ if (APPLE)
|
|||||||
add_json_library(ovpncliagent)
|
add_json_library(ovpncliagent)
|
||||||
target_compile_definitions(ovpncliagent PRIVATE -DOPENVPN_COMMAND_AGENT)
|
target_compile_definitions(ovpncliagent PRIVATE -DOPENVPN_COMMAND_AGENT)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (${CLI_TUNBUILDER})
|
||||||
|
target_compile_definitions(ovpncli PRIVATE USE_TUN_BUILDER)
|
||||||
|
endif ()
|
||||||
|
@ -123,16 +123,12 @@ class ClientBase : public ClientAPI::OpenVPNClient
|
|||||||
public:
|
public:
|
||||||
bool tun_builder_new() override
|
bool tun_builder_new() override
|
||||||
{
|
{
|
||||||
tbc.tun_builder_set_mtu(1500);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tun_builder_establish() override
|
int tun_builder_establish() override
|
||||||
{
|
{
|
||||||
if (!tun)
|
tun.reset(new TUN_CLASS_SETUP());
|
||||||
{
|
|
||||||
tun.reset(new TUN_CLASS_SETUP());
|
|
||||||
}
|
|
||||||
|
|
||||||
TUN_CLASS_SETUP::Config config;
|
TUN_CLASS_SETUP::Config config;
|
||||||
config.layer = Layer(Layer::Type::OSI_LAYER_3);
|
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);
|
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:
|
private:
|
||||||
TUN_CLASS_SETUP::Ptr tun = new TUN_CLASS_SETUP();
|
TUN_CLASS_SETUP::Ptr tun = new TUN_CLASS_SETUP();
|
||||||
TunBuilderCapture tbc;
|
TunBuilderCapture tbc;
|
||||||
|
Loading…
Reference in New Issue
Block a user