diff --git a/test/ovpncli/cli.cpp b/test/ovpncli/cli.cpp index 730862e4..8e482071 100644 --- a/test/ovpncli/cli.cpp +++ b/test/ovpncli/cli.cpp @@ -21,7 +21,7 @@ // OpenVPN 3 test client -#include // for atoi +#include #include #include @@ -342,6 +342,17 @@ private: CFRelease(url); }); thr.detach(); +#elif defined(OPENVPN_PLATFORM_TYPE_UNIX) + Argv argv; + if (::getuid() == 0 && ::getenv("SUDO_USER")) + { + argv.emplace_back("/usr/sbin/runuser"); + argv.emplace_back("-u"); + argv.emplace_back(::getenv("SUDO_USER")); + } + argv.emplace_back("/usr/bin/xdg-open"); + argv.emplace_back(url_str); + system_cmd(argv); #else std::cout << "No implementation to launch " << url_str << std::endl; #endif