]> git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/dnsdist-dnscrypt.cc
Merge pull request #3029 from cmouse/cpp11-integer-conversions
[thirdparty/pdns.git] / pdns / dnsdist-dnscrypt.cc
1
2 #include "dolog.hh"
3 #include "dnsdist.hh"
4 #include "dnscrypt.hh"
5
6 #ifdef HAVE_DNSCRYPT
7 int handleDnsCryptQuery(DnsCryptContext* ctx, char* packet, uint16_t len, std::shared_ptr<DnsCryptQuery>& query, uint16_t* decryptedQueryLen, bool tcp, std::vector<uint8_t>& response)
8 {
9 query->ctx = ctx;
10
11 ctx->parsePacket(packet, len, query, tcp, decryptedQueryLen);
12
13 if (query->valid == false) {
14 vinfolog("Dropping DnsCrypt invalid query");
15 return false;
16 }
17
18 if (query->encrypted == false) {
19 ctx->getCertificateResponse(query, response);
20
21 return false;
22 }
23
24 if(*decryptedQueryLen < (int)sizeof(struct dnsheader)) {
25 g_stats.nonCompliantQueries++;
26 return false;
27 }
28
29 return true;
30 }
31 #endif