Merge pull request #1899 from majestrate/use-new-gui-2022-04-18

windows updates
This commit is contained in:
majestrate 2022-04-18 18:34:46 -04:00 committed by GitHub
commit 1dfed9e061
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 13 deletions

View File

@ -1,6 +1,6 @@
if(NOT GUI_ZIP_URL)
set(GUI_ZIP_URL "https://oxen.rocks/oxen-io/loki-network-control-panel/lokinet-gui-windows-32bit-v0.3.8.zip")
set(GUI_ZIP_HASH_OPTS EXPECTED_HASH SHA256=60c2b738cf997e5684f307e5222498fd09143d495a932924105a49bf59ded8bb)
set(GUI_ZIP_URL "https://oxen.rocks/oxen-io/lokinet-gui/dev/lokinet-windows-x64-20220331T180338Z-569f90ad8.zip")
set(GUI_ZIP_HASH_OPTS EXPECTED_HASH SHA256=316f10489f5907bfa9c74b21f8ef2fdd7b7c7e6a0f5bcedaed2ee5f4004eab52)
endif()
set(TUNTAP_URL "https://build.openvpn.net/downloads/releases/latest/tap-windows-latest-stable.exe")

View File

@ -169,18 +169,9 @@ namespace llarp::vpn
return ret;
}
class Win32Interface final : public NetworkInterface
namespace
{
std::atomic<bool> m_Run;
HANDLE m_Device, m_IOCP;
std::vector<std::thread> m_Threads;
thread::Queue<net::IPPacket> m_ReadQueue;
InterfaceInfo m_Info;
AbstractRouter* const _router;
static std::wstring
std::wstring
get_win_sys_path()
{
wchar_t win_sys_path[MAX_PATH] = {0};
@ -193,6 +184,18 @@ namespace llarp::vpn
}
return win_sys_path;
}
} // namespace
class Win32Interface final : public NetworkInterface
{
std::atomic<bool> m_Run;
HANDLE m_Device, m_IOCP;
std::vector<std::thread> m_Threads;
thread::Queue<net::IPPacket> m_ReadQueue;
InterfaceInfo m_Info;
AbstractRouter* const _router;
static std::string
NetSHCommand()
@ -514,6 +517,17 @@ namespace llarp::vpn
::system(cmd.c_str());
}
static std::string
PowerShell()
{
std::wstring wcmd =
get_win_sys_path() + L"\\WindowsPowerShell\\v1.0\\powershell.exe -Command ";
using convert_type = std::codecvt_utf8<wchar_t>;
std::wstring_convert<convert_type, wchar_t> converter;
return converter.to_bytes(wcmd);
}
static std::string
RouteCommand()
{
@ -623,12 +637,16 @@ namespace llarp::vpn
void
AddDefaultRouteViaInterface(std::string ifname) override
{
// kill ipv6
Execute(PowerShell() + R"(Disable-NetAdapterBinding -Name "*" -ComponentID ms_tcpip6)");
DefaultRouteViaInterface(ifname, "ADD");
}
void
DelDefaultRouteViaInterface(std::string ifname) override
{
// restore ipv6
Execute(PowerShell() + R"(Enable-NetAdapterBinding -Name "*" -ComponentID ms_tcpip6)");
DefaultRouteViaInterface(ifname, "DELETE");
}
};