llarp/dns/platform.hpp
Namespaces
| Name |
|---|
| llarp [crypto.hpp] |
| llarp::dns |
Classes
| Name | |
|---|---|
| class | llarp::dns::I_Platform sets dns settings in a platform dependant way |
| class | llarp::dns::Null_Platform a dns platform does silently does nothing, successfully |
| class | llarp::dns::Multi_Platform a collection of dns platforms that are tried in order when setting dns |
Source code
#pragma once
#include <string>
#include <memory>
#include <llarp/net/sock_addr.hpp>
#include <llarp/util/logging.hpp>
#include <stdexcept>
#include <net/if.h>
namespace llarp::dns
{
class I_Platform
{
public:
virtual ~I_Platform() = default;
virtual void
set_resolver(unsigned int if_index, llarp::SockAddr dns, bool global) = 0;
};
class Null_Platform : public I_Platform
{
public:
~Null_Platform() override = default;
void
set_resolver(unsigned int, llarp::SockAddr, bool) override
{}
};
class Multi_Platform : public I_Platform
{
std::vector<std::unique_ptr<I_Platform>> m_Impls;
public:
~Multi_Platform() override = default;
void
add_impl(std::unique_ptr<I_Platform> impl);
void
set_resolver(unsigned int if_index, llarp::SockAddr dns, bool global) override;
};
} // namespace llarp::dns
Updated on 2026-01-10 at 22:49:45 +0000