0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-08 13:08:56 +02:00

ircd::net::dns: Split delegate service_init/fini; fix error.

This commit is contained in:
Jason Volk 2021-09-01 11:26:52 -07:00
parent 09bb1969d4
commit 120a382398
3 changed files with 23 additions and 7 deletions

View file

@ -103,5 +103,7 @@ struct ircd::net::dns::opts
/// (internal)
struct ircd::net::dns::init
{
static void service_init(), service_fini() noexcept;
init(), ~init() noexcept;
};

View file

@ -33,10 +33,7 @@ ircd::net::dns::opts_default;
ircd::net::dns::init::init()
{
#ifdef HAVE_NETDB_H
static const int stay_open {true};
::setservent(stay_open);
#endif
service_init();
assert(!resolver_instance);
resolver_instance = new resolver
@ -51,9 +48,7 @@ noexcept
delete resolver_instance;
resolver_instance = nullptr;
#ifdef HAVE_NETDB_H
::endservent();
#endif
service_fini();
}
//

View file

@ -37,6 +37,25 @@ ircd::net::dns::service_names
{ { 8448, "tcp" }, "matrix" },
};
void
ircd::net::dns::init::service_init()
{
static const int stay_open {true};
#ifdef HAVE_NETDB_H
::setservent(stay_open);
#endif
}
void
ircd::net::dns::init::service_fini()
noexcept
{
#ifdef HAVE_NETDB_H
::endservent();
#endif
}
uint16_t
ircd::net::dns::service_port(const string_view &name,
const string_view &prot)