DnsResolve
Description
DnsResolve dispatches by argument count. The 4-arg form additionally dispatches on the out parameter type: DnsAddrs * selects the vec form, SocketAddr * selects the single-addr form.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
SysDns.c:23:
DnsAddrs out = VecInitT(out, a);
bool got = DnsResolve(&r, "localhost", 8080, SOCKET_KIND_TCP, &out);
// At minimum one address should come back (127.0.0.1). The exact
- In
SysDns.c:51:
DnsAddrs out = VecInitT(out, a);
bool got = DnsResolve(&r, "LocalHost", 0, SOCKET_KIND_TCP, &out);
VecDeinit(&out);- In
SysDns.c:69:
DnsAddrs out = VecInitT(out, a);
bool got = DnsResolve(&r, "localhost.", 0, SOCKET_KIND_TCP, &out);
VecDeinit(&out);- In
SysDns.c:88:
DnsAddrs out = VecInitT(out, a);
bool got = DnsResolve(&r, "203.0.113.7:9999", SOCKET_KIND_TCP, &out);
bool ok = got && out.length == 1 && out.data[0].family == SOCKET_FAMILY_INET;- In
SysDns.c:112:
DnsAddrs out = VecInitT(out, a);
bool got = DnsResolve(&r, "[::1]:443", SOCKET_KIND_TCP, &out);
bool ok = got && out.length == 1 && out.data[0].family == SOCKET_FAMILY_INET6;- In
SysDns.c:137:
DnsAddrs out = VecInitT(out, a);
bool got = DnsResolve(&r, "localhost:53", SOCKET_KIND_TCP, &out);
// Sanity: each returned address should format with ":53" suffix.
- In
SysDns.c:168:
SocketAddr one;
bool got = DnsResolve(&r, "127.0.0.1:80", SOCKET_KIND_TCP, &one);
bool ok = got && one.family == SOCKET_FAMILY_INET;- In
SysDns.c:191:
DnsAddrs out = VecInitT(out, a);
bool got = DnsResolve(&r, "localhost", SOCKET_KIND_TCP, &out);
bool ok = !got && out.length == 0;- In
SysDns.c:210:
DnsAddrs out = VecInitT(out, a);
bool got = DnsResolve(&r, "localhost:abc", SOCKET_KIND_TCP, &out);
bool ok = !got;- In
Dns.c:572:
StrDeinit(&norm);
DefaultAllocatorDeinit(&scratch);
LOG_ERROR("DnsResolve: hostname \"{}\" exceeds 255 bytes", (const char *)hostname);
return false;
}- In
Dns.c:595:
// 2. Nameserver query path.
if (self->nameservers.length == 0) {
LOG_ERROR("DnsResolve: no nameservers configured (read /etc/resolv.conf at init)");
return false;
}- In
Dns.c:615:
if (!found) {
LOG_ERROR("DnsResolve: no A/AAAA records found for \"{}\"", (const char *)hostname);
}
return found;- In
Dns.c:648:
}
if (colon_at >= spec_len) {
LOG_ERROR("DnsResolve: spec \"{}\" has no \":port\"", (const char *)spec);
return false;
}- In
Dns.c:653:
char host[256];
if (colon_at >= sizeof(host)) {
LOG_ERROR("DnsResolve: host portion of \"{}\" exceeds 255 bytes", (const char *)spec);
return false;
}- In
Dns.c:663:
char c = spec[i];
if (c < '0' || c > '9') {
LOG_ERROR("DnsResolve: non-numeric port in \"{}\"", (const char *)spec);
return false;
}- In
Dns.c:668:
u32 next = (u32)port * 10u + (u32)(c - '0');
if (next > 0xFFFFu) {
LOG_ERROR("DnsResolve: port in \"{}\" out of range", (const char *)spec);
return false;
}- In
Dns.c:675:
// A bare "host:" with no digits after the colon is malformed.
if (colon_at + 1 == spec_len) {
LOG_ERROR("DnsResolve: empty port in \"{}\"", (const char *)spec);
return false;
}- In
Beam.c:217:
SocketAddr listen_addr;
if (!DnsResolve(&resolver, listen_spec, SOCKET_KIND_TCP, &listen_addr)) {
LOG_ERROR("invalid --listen address: {}", listen_spec);
DnsResolverDeinit(&resolver);- In
Beam.c:224:
SocketAddr upstream_addr;
if (!DnsResolve(&resolver, upstream_spec, SOCKET_KIND_TCP, &upstream_addr)) {
LOG_ERROR("invalid --upstream address: {}", upstream_spec);
DnsResolverDeinit(&resolver);- In
Resolve.c:39:
DnsAddrs addrs = VecInitT(addrs, alloc);
if (!DnsResolve(&r, hostname, 0, SOCKET_KIND_TCP, &addrs)) {
DnsResolverDeinit(&r);
return 1;
Last updated on