diff options
Diffstat (limited to 'src/dns.cpp')
-rw-r--r-- | src/dns.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dns.cpp b/src/dns.cpp index ab7f00ff3..3f8cde523 100644 --- a/src/dns.cpp +++ b/src/dns.cpp @@ -61,9 +61,8 @@ enum QueryFlags /** Represents a dns resource record (rr) */ -class ResourceRecord +struct ResourceRecord { - public: QueryType type; /* Record type */ unsigned int rr_class; /* Record class */ unsigned long ttl; /* Time to live */ @@ -771,6 +770,7 @@ DNSInfo DNSRequest::ResultIsReady(DNSHeader &header, int length) /* This is just to keep _FORTIFY_SOURCE happy */ rr.type = DNS_QUERY_NONE; rr.rdlength = 0; + rr.ttl = 1; /* GCC is a whiney bastard -- see the XXX below. */ if (!(header.flags1 & FLAGS_MASK_QR)) return std::make_pair((unsigned char*)NULL,"Not a query result"); @@ -828,6 +828,7 @@ DNSInfo DNSRequest::ResultIsReady(DNSHeader &header, int length) if (length - i < 10) return std::make_pair((unsigned char*)NULL,"Incorrectly sized DNS reply"); + /* XXX: We actually initialise 'rr' here including its ttl field */ DNS::FillResourceRecord(&rr,&header.payload[i]); i += 10; if (rr.type != this->type) |