#pragma once #include #include #include #include namespace llarp::win32::WinDivert { /// format an ipv4 in host order to string such that a windivert filter spec can understand it std::string format_ip(uint32_t ip); /// create a packet interceptor that uses windivert. /// filter_spec describes the kind of traffic we wish to intercept. /// pass in a callable that wakes up the main event loop. /// we hide all implementation details from other compilation units to prevent issues with /// linkage that may arrise. std::shared_ptr make_interceptor(std::string filter_spec, std::function wakeup); } // namespace llarp::win32::WinDivert