It is accessed by at least two threads:

* `[shutoff]` in `UnregisterHTTPHandler`
* `[http]` in `http_request_cb`
prefix(_prefix), exactMatch(_exactMatch), handler(_handler)
    {
    }
    std::string prefix;
    bool exactMatch;
    HTTPRequestHandler handler;
};
static struct event_base* eventBase = nullptr;
static struct evhttp* eventHTTP = nullptr;
static std::vector<CSubNet> rpc_allow_subnets;
static std::unique_ptr<WorkQueue<HTTPClosure>> g_work_queue{nullptr};
static std::vector<HTTPPathHandler> pathHandlers;
static std::vector<evhttp_bound_socket *> boundSockets;
static bool ClientAllowed(const CNetAddr& netaddr)
{
    if (!netaddr.IsValid())
        return false;
    for(const CSubNet& subnet : rpc_allow_subnets)
        if (subnet.Match(netaddr))
            return true;
    return false;
}
static bool InitHTTPAllowList()