Skip to content
DnsResolve_4_vec

DnsResolve_4_vec

Description

Spec-based overload (vec form). Accepts a single "host:port" string and appends every matching SocketAddr to out.

Tries SocketAddrParse first (numeric IPv4 127.0.0.1:8080 and bracketed IPv6 [::1]:8080 short-circuit here with no network I/O). Otherwise splits spec on the last : to get host + port and dispatches to DnsResolve_5.

Success

Returns true. out has at least one new entry.

Failure

Returns false. Logs the failure cause.

Usage example (Cross-references)

Usage examples (Cross-references)
    }
    
    bool DnsResolve_4_vec(DnsResolver *self, const char *spec, SocketKind kind, DnsAddrs *out) {
        if (!self || !spec || !out) {
            return false;
        }
        DnsAddrs addrs    = VecInitT(addrs, self->alloc);
        bool     ok       = DnsResolve_4_vec(self, spec, kind, &addrs);
        bool     have_one = ok && addrs.length > 0;
        if (have_one) {
    #define DnsResolve(...) MISRA_OVERLOAD(DnsResolve, __VA_ARGS__)
    #define DnsResolve_4(self, spec, kind, out)                                                                            \
        _Generic((out), DnsAddrs *: DnsResolve_4_vec, SocketAddr *: DnsResolve_4_one)((self), (spec), (kind), (out))
    
    #ifdef __cplusplus
Last updated on