#endif
uint16_t qtype{0}; // 2
uint16_t qclass{0}; // 2
+ // origID is in network-byte order
uint16_t origID{0}; // 2
uint16_t origFlags{0}; // 2
uint16_t cacheFlags{0}; // DNS flags as sent to the backend // 2
IDState ids;
setIDStateFromDNSQuestion(ids, dq, std::move(qname));
- ids.origID = ntohs(dh->id);
+ ids.origID = dh->id;
prependSizeToTCPQuery(state->d_buffer, 0);
conn->incQueries();
conn->d_currentPos = 0;
- DEBUGLOG("adding a pending response for ID "<<conn->d_currentQuery.d_idstate.origID<<" and QNAME "<<conn->d_currentQuery.d_idstate.qname);
- conn->d_pendingResponses[conn->d_currentQuery.d_idstate.origID] = std::move(conn->d_currentQuery);
+ DEBUGLOG("adding a pending response for ID "<<ntohs(conn->d_currentQuery.d_idstate.origID)<<" and QNAME "<<conn->d_currentQuery.d_idstate.qname);
+ conn->d_pendingResponses[ntohs(conn->d_currentQuery.d_idstate.origID)] = std::move(conn->d_currentQuery);
conn->d_currentQuery.d_buffer.clear();
++conn->d_ds->outstanding;
if (!du->tcp && du->truncated && du->response.size() > sizeof(dnsheader)) {
/* restoring the original ID */
dnsheader* queryDH = reinterpret_cast<struct dnsheader*>(du->query.data() + du->proxyProtocolPayloadSize);
- queryDH->id = htons(du->ids.origID);
+ queryDH->id = du->ids.origID;
auto cpq = std::make_unique<DoHCrossProtocolQuery>(du);
# backend, then over TCP
name = 'truncated-udp.doh-with-cache.tests.powerdns.com.'
query = dns.message.make_query(name, 'A', 'IN')
- query.id = 0
+ query.id = 42
expectedQuery = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096)
- expectedQuery.id = 0
+ expectedQuery.id = 42
response = dns.message.make_response(query)
rrset = dns.rrset.from_text(name,
3600,