#include #include #include #include #include #include #include static std::unordered_map cache; static std::optional cached_is_domain_blocked(const char *hostname) { auto fres = cache.find(hostname); if (fres != cache.end()) { return fres->second; } return {}; } extern "C" bool is_domain_blocked(const char *hostname) { // Check cache first { auto fres = cached_is_domain_blocked(hostname); if (fres.has_value()) { return fres.value(); } } // Use curlpp to check for HTTP != 200 }