Make interface name overridable (may not work on macos)

This commit is contained in:
2025-11-27 18:54:31 +01:00
parent 7d6d9e8ee6
commit d8ab2e2bda
2 changed files with 12 additions and 10 deletions

View File

@@ -42,6 +42,11 @@ int main(int argc, char** argv) {
("h,help", "Print help") ("h,help", "Print help")
("s,server", "Server address", cxxopts::value<std::string>()->default_value("127.0.0.1")) ("s,server", "Server address", cxxopts::value<std::string>()->default_value("127.0.0.1"))
("p,port", "Server port", cxxopts::value<uint16_t>()->default_value(std::to_string(serverPort()))) ("p,port", "Server port", cxxopts::value<uint16_t>()->default_value(std::to_string(serverPort())))
#if defined(__APPLE__)
("i,interface", "Override used interface", cxxopts::value<std::string>()->default_value("utun0"))
#else
("i,interface", "Override used interface", cxxopts::value<std::string>()->default_value("lynx0"))
#endif
("allow-selfsigned", "Allow self-signed certificates", cxxopts::value<bool>()->default_value("false")); ("allow-selfsigned", "Allow self-signed certificates", cxxopts::value<bool>()->default_value("false"));
bool insecureMode = options.parse(argc, argv).count("allow-selfsigned") > 0; bool insecureMode = options.parse(argc, argv).count("allow-selfsigned") > 0;
@@ -66,11 +71,7 @@ int main(int argc, char** argv) {
WintunInitialize(); WintunInitialize();
#endif #endif
#if defined(__APPLE__) std::shared_ptr<VirtualInterface> tun = std::make_shared<VirtualInterface>(result["interface"].as<std::string>());
std::shared_ptr<VirtualInterface> tun = std::make_shared<VirtualInterface>("utun0");
#else
std::shared_ptr<VirtualInterface> tun = std::make_shared<VirtualInterface>("lynx0");
#endif
log("Using virtual interface: " + tun->getName()); log("Using virtual interface: " + tun->getName());
LibSodiumWrapper sodiumWrapper = LibSodiumWrapper(); LibSodiumWrapper sodiumWrapper = LibSodiumWrapper();

View File

@@ -42,6 +42,11 @@ int main(int argc, char** argv) {
options.add_options() options.add_options()
("h,help", "Print help") ("h,help", "Print help")
("4,ipv4-only", "Force IPv4 only operation", cxxopts::value<bool>()->default_value("false")) ("4,ipv4-only", "Force IPv4 only operation", cxxopts::value<bool>()->default_value("false"))
#if defined(__APPLE__)
("i,interface", "Override used interface", cxxopts::value<std::string>()->default_value("utun0"))
#else
("i,interface", "Override used interface", cxxopts::value<std::string>()->default_value("lynx0"))
#endif
("c,config", "Specify config file location", cxxopts::value<std::string>()->default_value("config.json")); ("c,config", "Specify config file location", cxxopts::value<std::string>()->default_value("config.json"));
PanicHandler::init(); PanicHandler::init();
@@ -66,11 +71,7 @@ int main(int argc, char** argv) {
WintunInitialize(); WintunInitialize();
#endif #endif
#if defined(__APPLE__) std::shared_ptr<VirtualInterface> tun = std::make_shared<VirtualInterface>(result["interface"].as<std::string>());
std::shared_ptr<VirtualInterface> tun = std::make_shared<VirtualInterface>("utun0");
#else
std::shared_ptr<VirtualInterface> tun = std::make_shared<VirtualInterface>("lynx0");
#endif
log("Using virtual interface: " + tun->getName()); log("Using virtual interface: " + tun->getName());
// Generate a temporary keypair, replace with actual CA signed keys later (Note, these are stored in memory) // Generate a temporary keypair, replace with actual CA signed keys later (Note, these are stored in memory)