mirror of
https://github.com/oxen-io/lokinet.git
synced 2024-11-15 12:13:24 +00:00
871c3e3281
* wintun vpn platform for windows * bundle config snippets into nsis installer for exit node, keyfile persisting, reduced hops mode. * use wintun for vpn platform * isolate all windows platform specific code into their own compilation units and libraries * split up internal libraries into more specific components * rename liblokinet.a target to liblokinet-amalgum.a to elimiate ambiguity with liblokinet.so * DNS platform for win32 * rename llarp/ev/ev_libuv.{c,h}pp to llarp/ev/libuv.{c,h}pp as the old name was idiotic * split up net platform into win32 and posix specific compilation units * rename lokinet_init.c to easter_eggs.cpp as that is what they are for and it does not need to be a c compilation target * add cmake option STRIP_SYMBOLS for seperating out debug symbols for windows builds * intercept dns traffic on all interfaces on windows using windivert and feed it into lokinet
47 lines
816 B
C++
47 lines
816 B
C++
|
|
#include "platform.hpp"
|
|
|
|
#ifdef _WIN32
|
|
#include "win32.hpp"
|
|
#endif
|
|
#ifdef __linux__
|
|
#ifdef ANDROID
|
|
#include "android.hpp"
|
|
#else
|
|
#include "linux.hpp"
|
|
#endif
|
|
#endif
|
|
|
|
#include <exception>
|
|
|
|
namespace llarp::vpn
|
|
{
|
|
const llarp::net::Platform*
|
|
IRouteManager::Net_ptr() const
|
|
{
|
|
return llarp::net::Platform::Default_ptr();
|
|
}
|
|
|
|
std::shared_ptr<Platform>
|
|
MakeNativePlatform(llarp::Context* ctx)
|
|
{
|
|
(void)ctx;
|
|
std::shared_ptr<Platform> plat;
|
|
#ifdef _WIN32
|
|
plat = std::make_shared<llarp::win32::VPNPlatform>(ctx);
|
|
#endif
|
|
#ifdef __linux__
|
|
#ifdef ANDROID
|
|
plat = std::make_shared<vpn::AndroidPlatform>(ctx);
|
|
#else
|
|
plat = std::make_shared<vpn::LinuxPlatform>();
|
|
#endif
|
|
#endif
|
|
#ifdef __APPLE__
|
|
throw std::runtime_error{"not supported"};
|
|
#endif
|
|
return plat;
|
|
}
|
|
|
|
} // namespace llarp::vpn
|