Skip to content

DnsResponse

Description

Parsed DNS message. id echoes the client-supplied transaction id from the matching query so the resolver can pair responses.

Usage example (Cross-references)

Usage examples (Cross-references)
        };
    
        DnsResponse resp = {0};
        bool        ok   = DnsParseResponse(&resp, wire, sizeof(wire), a);
        };
    
        DnsResponse resp  = {0};
        bool        ok    = DnsParseResponse(&resp, wire, sizeof(wire), a);
        bool        match = ok && resp.rcode == DNS_RCODE_NXDOMAIN && resp.answers.length == 0;
        };
    
        DnsResponse resp  = {0};
        bool        ok    = DnsParseResponse(&resp, wire, sizeof(wire), a);
        bool        match = ok && resp.answers.length == 1;
        }
    
        DnsResponse resp = {0};
        bool        ok   = DnsParseResponse(&resp, resp_buf, (u64)got, sa);
        if (!ok || resp.id != id || resp.rcode != DNS_RCODE_NOERROR) {
    }
    
    bool DnsParseResponse(DnsResponse *out, const u8 *buf, u64 len, Allocator *alloc) {
        if (!out || !buf || !alloc) {
            return false;
    }
    
    void DnsResponseDeinit(DnsResponse *self) {
        if (!self) {
            return;
            DnsRecords authority;
            DnsRecords additional;
        } DnsResponse;
    
        ///
        ///           `DnsResponseDeinit`.
        ///
        bool DnsParseResponse(DnsResponse *out, const u8 *buf, u64 len, Allocator *alloc);
    
        void DnsResponseDeinit(DnsResponse *self);
        bool DnsParseResponse(DnsResponse *out, const u8 *buf, u64 len, Allocator *alloc);
    
        void DnsResponseDeinit(DnsResponse *self);
        void DnsRecordDeinit(DnsRecord *self);
Last updated on