From 27d58044c76396cfbaed1f6272a066dfc2e11100 Mon Sep 17 00:00:00 2001 From: Jason Rhinelander Date: Thu, 15 Sep 2022 18:30:33 -0300 Subject: [PATCH] macos compilation fixes --- llarp/apple/context_wrapper.cpp | 2 +- llarp/apple/route_manager.cpp | 4 ++-- llarp/apple/route_manager.hpp | 18 +++++++++--------- llarp/apple/vpn_interface.cpp | 11 +++-------- llarp/apple/vpn_interface.hpp | 3 --- llarp/apple/vpn_platform.hpp | 2 +- 6 files changed, 16 insertions(+), 24 deletions(-) diff --git a/llarp/apple/context_wrapper.cpp b/llarp/apple/context_wrapper.cpp index 4fc85c804..025c0cfb2 100644 --- a/llarp/apple/context_wrapper.cpp +++ b/llarp/apple/context_wrapper.cpp @@ -90,7 +90,7 @@ llarp_apple_init(llarp_apple_config* appleconf) #ifdef MACOS_SYSTEM_EXTENSION std::strncpy( appleconf->dns_bind_ip, - config->dns.m_bind.hostString().c_str(), + config->dns.m_bind.front().hostString().c_str(), sizeof(appleconf->dns_bind_ip)); #endif diff --git a/llarp/apple/route_manager.cpp b/llarp/apple/route_manager.cpp index 52e0890c0..3358d6c8b 100644 --- a/llarp/apple/route_manager.cpp +++ b/llarp/apple/route_manager.cpp @@ -38,14 +38,14 @@ namespace llarp::apple trampoline_active = enable; } - void RouteManager::AddDefaultRouteViaInterface(std::string) + void RouteManager::AddDefaultRouteViaInterface(vpn::NetworkInterface&) { check_trampoline(true); if (callback_context and route_callbacks.add_default_route) route_callbacks.add_default_route(callback_context); } - void RouteManager::DelDefaultRouteViaInterface(std::string) + void RouteManager::DelDefaultRouteViaInterface(vpn::NetworkInterface&) { check_trampoline(false); if (callback_context and route_callbacks.del_default_route) diff --git a/llarp/apple/route_manager.hpp b/llarp/apple/route_manager.hpp index f23c7f4d7..d6e7c611a 100644 --- a/llarp/apple/route_manager.hpp +++ b/llarp/apple/route_manager.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include "context_wrapper.h" namespace llarp::apple @@ -16,18 +16,18 @@ namespace llarp::apple /// These are called for poking route holes, but we don't have to do that at all on macos /// because the appex isn't subject to its own rules. void - AddRoute(IPVariant_t /*ip*/, IPVariant_t /*gateway*/) override + AddRoute(net::ipaddr_t /*ip*/, net::ipaddr_t /*gateway*/) override {} void - DelRoute(IPVariant_t /*ip*/, IPVariant_t /*gateway*/) override + DelRoute(net::ipaddr_t /*ip*/, net::ipaddr_t /*gateway*/) override {} void - AddDefaultRouteViaInterface(std::string ifname) override; + AddDefaultRouteViaInterface(vpn::NetworkInterface& vpn) override; void - DelDefaultRouteViaInterface(std::string ifname) override; + DelDefaultRouteViaInterface(vpn::NetworkInterface& vpn) override; void AddRouteViaInterface(vpn::NetworkInterface& vpn, IPRange range) override; @@ -35,13 +35,13 @@ namespace llarp::apple void DelRouteViaInterface(vpn::NetworkInterface& vpn, IPRange range) override; - std::vector - GetGatewaysNotOnInterface(std::string /*ifname*/) override + std::vector + GetGatewaysNotOnInterface(vpn::NetworkInterface& /*vpn*/) override { // We can't get this on mac from our sandbox, but we don't actually need it because we // ignore the gateway for AddRoute/DelRoute anyway, so just return a zero IP. - std::vector ret; - ret.push_back(huint32_t{0}); + std::vector ret; + ret.emplace_back(net::ipv4addr_t{}); return ret; } diff --git a/llarp/apple/vpn_interface.cpp b/llarp/apple/vpn_interface.cpp index c54cef00a..f0b3a6c32 100644 --- a/llarp/apple/vpn_interface.cpp +++ b/llarp/apple/vpn_interface.cpp @@ -10,7 +10,8 @@ namespace llarp::apple packet_write_callback packet_writer, on_readable_callback on_readable, AbstractRouter* router) - : m_PacketWriter{std::move(packet_writer)} + : vpn::NetworkInterface{{}} + , m_PacketWriter{std::move(packet_writer)} , m_OnReadable{std::move(on_readable)} , _router{router} { @@ -39,12 +40,6 @@ namespace llarp::apple return -1; } - std::string - VPNInterface::IfName() const - { - return ""; - } - net::IPPacket VPNInterface::ReadNextPacket() { @@ -58,7 +53,7 @@ namespace llarp::apple VPNInterface::WritePacket(net::IPPacket pkt) { int af_family = pkt.IsV6() ? AF_INET6 : AF_INET; - return m_PacketWriter(af_family, pkt.buf, pkt.sz); + return m_PacketWriter(af_family, pkt.data(), pkt.size()); } } // namespace llarp::apple diff --git a/llarp/apple/vpn_interface.hpp b/llarp/apple/vpn_interface.hpp index 07b4de5ab..b030afd9a 100644 --- a/llarp/apple/vpn_interface.hpp +++ b/llarp/apple/vpn_interface.hpp @@ -29,9 +29,6 @@ namespace llarp::apple int PollFD() const override; - std::string - IfName() const override; - net::IPPacket ReadNextPacket() override; diff --git a/llarp/apple/vpn_platform.hpp b/llarp/apple/vpn_platform.hpp index 0cf7f469b..3e9023ee6 100644 --- a/llarp/apple/vpn_platform.hpp +++ b/llarp/apple/vpn_platform.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include "vpn_interface.hpp" #include "route_manager.hpp"