From d8ab2e2bda96eff6142fc9dbc669e681bdb57700 Mon Sep 17 00:00:00 2001 From: DcruBro Date: Thu, 27 Nov 2025 18:54:31 +0100 Subject: [PATCH] Make interface name overridable (may not work on macos) --- src/client/main.cpp | 11 ++++++----- src/server/main.cpp | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/client/main.cpp b/src/client/main.cpp index 4718190..b62a265 100644 --- a/src/client/main.cpp +++ b/src/client/main.cpp @@ -42,6 +42,11 @@ int main(int argc, char** argv) { ("h,help", "Print help") ("s,server", "Server address", cxxopts::value()->default_value("127.0.0.1")) ("p,port", "Server port", cxxopts::value()->default_value(std::to_string(serverPort()))) +#if defined(__APPLE__) + ("i,interface", "Override used interface", cxxopts::value()->default_value("utun0")) +#else + ("i,interface", "Override used interface", cxxopts::value()->default_value("lynx0")) +#endif ("allow-selfsigned", "Allow self-signed certificates", cxxopts::value()->default_value("false")); bool insecureMode = options.parse(argc, argv).count("allow-selfsigned") > 0; @@ -66,11 +71,7 @@ int main(int argc, char** argv) { WintunInitialize(); #endif -#if defined(__APPLE__) - std::shared_ptr tun = std::make_shared("utun0"); -#else - std::shared_ptr tun = std::make_shared("lynx0"); -#endif + std::shared_ptr tun = std::make_shared(result["interface"].as()); log("Using virtual interface: " + tun->getName()); LibSodiumWrapper sodiumWrapper = LibSodiumWrapper(); diff --git a/src/server/main.cpp b/src/server/main.cpp index ce0b939..2c41b6b 100644 --- a/src/server/main.cpp +++ b/src/server/main.cpp @@ -42,6 +42,11 @@ int main(int argc, char** argv) { options.add_options() ("h,help", "Print help") ("4,ipv4-only", "Force IPv4 only operation", cxxopts::value()->default_value("false")) +#if defined(__APPLE__) + ("i,interface", "Override used interface", cxxopts::value()->default_value("utun0")) +#else + ("i,interface", "Override used interface", cxxopts::value()->default_value("lynx0")) +#endif ("c,config", "Specify config file location", cxxopts::value()->default_value("config.json")); PanicHandler::init(); @@ -66,11 +71,7 @@ int main(int argc, char** argv) { WintunInitialize(); #endif -#if defined(__APPLE__) - std::shared_ptr tun = std::make_shared("utun0"); -#else - std::shared_ptr tun = std::make_shared("lynx0"); -#endif + std::shared_ptr tun = std::make_shared(result["interface"].as()); log("Using virtual interface: " + tun->getName()); // Generate a temporary keypair, replace with actual CA signed keys later (Note, these are stored in memory)