mirror of
https://github.com/matrix-construct/construct
synced 2024-11-12 13:01:07 +01:00
ircd::net::dns: Consolidate cache interfaces in public header; weak unresolved for now.
This commit is contained in:
parent
bfeceea645
commit
4935015b18
6 changed files with 21 additions and 28 deletions
|
@ -97,25 +97,6 @@ struct ircd::net::dns::opts
|
||||||
opts() = default;
|
opts() = default;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// (internal) DNS cache
|
|
||||||
namespace ircd::net::dns::cache
|
|
||||||
{
|
|
||||||
using closure = std::function<bool (const string_view &, const json::object &)>;
|
|
||||||
|
|
||||||
extern conf::item<seconds> min_ttl;
|
|
||||||
extern conf::item<seconds> error_ttl;
|
|
||||||
extern conf::item<seconds> nxdomain_ttl;
|
|
||||||
|
|
||||||
string_view make_type(const mutable_buffer &out, const string_view &);
|
|
||||||
string_view make_type(const mutable_buffer &out, const uint16_t &);
|
|
||||||
|
|
||||||
bool for_each(const string_view &type, const closure &); // do not make_type() here
|
|
||||||
bool for_each(const hostport &, const opts &, const closure &);
|
|
||||||
bool get(const hostport &, const opts &, const callback &);
|
|
||||||
bool put(const hostport &, const opts &, const records &);
|
|
||||||
bool put(const hostport &, const opts &, const uint &code, const string_view &msg = {});
|
|
||||||
}
|
|
||||||
|
|
||||||
/// (internal)
|
/// (internal)
|
||||||
struct ircd::net::dns::init
|
struct ircd::net::dns::init
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,11 +8,26 @@
|
||||||
// copyright notice and this permission notice is present in all copies. The
|
// copyright notice and this permission notice is present in all copies. The
|
||||||
// full license for this software is available in the LICENSE file.
|
// full license for this software is available in the LICENSE file.
|
||||||
|
|
||||||
//
|
/// (internal) DNS cache
|
||||||
// This file is not included in any include group. It is used when
|
namespace ircd::net::dns::cache
|
||||||
// implementing the dns::cache by modules and extensions.
|
{
|
||||||
//
|
using closure = std::function<bool (const string_view &, const json::object &)>;
|
||||||
|
|
||||||
|
extern conf::item<seconds> min_ttl;
|
||||||
|
extern conf::item<seconds> error_ttl;
|
||||||
|
extern conf::item<seconds> nxdomain_ttl;
|
||||||
|
|
||||||
|
string_view make_type(const mutable_buffer &out, const string_view &);
|
||||||
|
string_view make_type(const mutable_buffer &out, const uint16_t &);
|
||||||
|
|
||||||
|
bool for_each(const string_view &type, const closure &); // do not make_type() here
|
||||||
|
bool for_each(const hostport &, const opts &, const closure &);
|
||||||
|
bool get(const hostport &, const opts &, const callback &);
|
||||||
|
bool put(const hostport &, const opts &, const records &);
|
||||||
|
bool put(const hostport &, const opts &, const uint &code, const string_view &msg = {});
|
||||||
|
}
|
||||||
|
|
||||||
|
/// (internal) DNS cache
|
||||||
namespace ircd::net::dns::cache
|
namespace ircd::net::dns::cache
|
||||||
{
|
{
|
||||||
struct waiter;
|
struct waiter;
|
||||||
|
@ -25,6 +40,7 @@ namespace ircd::net::dns::cache
|
||||||
extern ctx::dock dock;
|
extern ctx::dock dock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// DNS cache result waiter
|
||||||
struct ircd::net::dns::cache::waiter
|
struct ircd::net::dns::cache::waiter
|
||||||
{
|
{
|
||||||
dns::callback callback;
|
dns::callback callback;
|
||||||
|
|
|
@ -38,6 +38,7 @@ namespace ircd::net
|
||||||
#include "ipaddr.h"
|
#include "ipaddr.h"
|
||||||
#include "ipport.h"
|
#include "ipport.h"
|
||||||
#include "dns.h"
|
#include "dns.h"
|
||||||
|
#include "dns_cache.h"
|
||||||
#include "listener.h"
|
#include "listener.h"
|
||||||
#include "listener_udp.h"
|
#include "listener_udp.h"
|
||||||
#include "sock_opts.h"
|
#include "sock_opts.h"
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
// full license for this software is available in the LICENSE file.
|
// full license for this software is available in the LICENSE file.
|
||||||
|
|
||||||
#include <RB_INC_NETDB_H
|
#include <RB_INC_NETDB_H
|
||||||
#include <ircd/net/dns_cache.h>
|
|
||||||
|
|
||||||
namespace ircd::net::dns
|
namespace ircd::net::dns
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
// copyright notice and this permission notice is present in all copies. The
|
// copyright notice and this permission notice is present in all copies. The
|
||||||
// full license for this software is available in the LICENSE file.
|
// full license for this software is available in the LICENSE file.
|
||||||
|
|
||||||
#include <ircd/net/dns_cache.h>
|
|
||||||
|
|
||||||
decltype(ircd::net::dns::cache::min_ttl)
|
decltype(ircd::net::dns::cache::min_ttl)
|
||||||
ircd::net::dns::cache::min_ttl
|
ircd::net::dns::cache::min_ttl
|
||||||
{
|
{
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
// copyright notice and this permission notice is present in all copies. The
|
// copyright notice and this permission notice is present in all copies. The
|
||||||
// full license for this software is available in the LICENSE file.
|
// full license for this software is available in the LICENSE file.
|
||||||
|
|
||||||
#include <ircd/net/dns_cache.h>
|
|
||||||
|
|
||||||
namespace ircd::net::dns::cache
|
namespace ircd::net::dns::cache
|
||||||
{
|
{
|
||||||
static bool call_waiter(const string_view &, const string_view &, const json::array &, waiter &);
|
static bool call_waiter(const string_view &, const string_view &, const json::array &, waiter &);
|
||||||
|
|
Loading…
Reference in a new issue