mirror of
https://github.com/matrix-construct/construct
synced 2024-12-26 15:33:54 +01:00
ircd::server: Reorg peer::resolve() as unary using member data.
This commit is contained in:
parent
e2711da664
commit
da0464e101
2 changed files with 21 additions and 8 deletions
|
@ -54,7 +54,7 @@ struct ircd::server::peer
|
||||||
void handle_resolve_AAAA(const hostport &, const json::array &);
|
void handle_resolve_AAAA(const hostport &, const json::array &);
|
||||||
void handle_resolve_SRV(const hostport &, const json::array &);
|
void handle_resolve_SRV(const hostport &, const json::array &);
|
||||||
void resolve(const hostport &, const net::dns::opts &);
|
void resolve(const hostport &, const net::dns::opts &);
|
||||||
void resolve(const hostport &);
|
void resolve();
|
||||||
|
|
||||||
void cleanup_canceled();
|
void cleanup_canceled();
|
||||||
void disperse_uncommitted(link &);
|
void disperse_uncommitted(link &);
|
||||||
|
|
|
@ -191,7 +191,7 @@ ircd::server::get(const net::hostport &hostport)
|
||||||
if(peer.expired() && !peer.op_resolve)
|
if(peer.expired() && !peer.op_resolve)
|
||||||
{
|
{
|
||||||
assert(peer.hostcanon.data() == it->first.data());
|
assert(peer.hostcanon.data() == it->first.data());
|
||||||
peer.resolve(peer.open_opts.hostport);
|
peer.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
return peer;
|
return peer;
|
||||||
|
@ -1346,14 +1346,27 @@ ircd::server::peer::del(link &link)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ircd::server::peer::resolve(const hostport &hostport)
|
ircd::server::peer::resolve()
|
||||||
{
|
{
|
||||||
net::dns::opts opts;
|
const net::hostport canon
|
||||||
|
{
|
||||||
|
this->hostcanon
|
||||||
|
};
|
||||||
|
|
||||||
// Figure out the initial query type. Most of the time it's SRV.
|
auto &hostport
|
||||||
opts.qtype = net::service(hostport) && !net::port(hostport)?
|
{
|
||||||
|
this->open_opts.hostport
|
||||||
|
};
|
||||||
|
|
||||||
|
hostport.host = host(canon);
|
||||||
|
hostport.service = service(canon);
|
||||||
|
hostport.port = port(hostport);
|
||||||
|
|
||||||
|
net::dns::opts opts;
|
||||||
|
opts.qtype =
|
||||||
|
net::service(hostport) && !net::port(hostport)?
|
||||||
33: // SRV
|
33: // SRV
|
||||||
peer::enable_ipv6 && net::enable_ipv6?
|
peer::enable_ipv6 && net::enable_ipv6?
|
||||||
28: // AAAA
|
28: // AAAA
|
||||||
1; // A
|
1; // A
|
||||||
|
|
||||||
|
@ -1368,7 +1381,7 @@ ircd::server::peer::resolve(const hostport &hostport)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ircd::server::peer::resolve(const hostport &hostport,
|
ircd::server::peer::resolve(const net::hostport &hostport,
|
||||||
const net::dns::opts &opts)
|
const net::dns::opts &opts)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue