]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
Remember that an OPT pseudo-RR was seen.
authorCalle Dybedahl <calle@init.se>
Thu, 22 May 2014 10:46:34 +0000 (12:46 +0200)
committerWillem Toorop <willem@nlnetlabs.nl>
Fri, 23 May 2014 08:54:18 +0000 (10:54 +0200)
ldns/packet.h
packet.c
wire2host.c

index 9dca06f56274935be91c495abd18f6a93683e539..2732e94fcc14d2b9fdf3de6d2c8337beda2e3b22 100644 (file)
@@ -251,6 +251,8 @@ struct ldns_struct_pkt
        uint8_t _edns_extended_rcode;
        /** EDNS Version */
        uint8_t _edns_version;
+        /* OPT pseudo-RR presence flag */
+        uint8_t _edns_present;
        /** Reserved EDNS data bits */
        uint16_t _edns_z;
        /** Arbitrary EDNS rdata */
index 0ac64c52fc4f58d8d8d3bb2532710946f55798f1..7c42783163fb5840ae7ebd5de90a593ea9a05da8 100644 (file)
--- a/packet.c
+++ b/packet.c
@@ -721,7 +721,8 @@ ldns_pkt_edns(const ldns_pkt *pkt) {
        return (ldns_pkt_edns_udp_size(pkt) > 0 ||
                ldns_pkt_edns_extended_rcode(pkt) > 0 ||
                ldns_pkt_edns_data(pkt) ||
-               ldns_pkt_edns_do(pkt)
+               ldns_pkt_edns_do(pkt) ||
+                pkt->_edns_present
               );
 }
 
index f305808c2851105f3bfd4908b62d0b0f4eed6dde..a36fd344b6d2cd1c0180abf9da92b98770e2e8b8 100644 (file)
@@ -477,6 +477,7 @@ ldns_wire2pkt(ldns_pkt **packet_p, const uint8_t *wire, size_t max)
        if(have_edns)
                ldns_pkt_set_arcount(packet, ldns_pkt_arcount(packet)
                         - have_edns);
+        packet->_edns_present = have_edns;
 
        *packet_p = packet;
        return status;