diff --git a/daemon/lua/kres-gen.lua b/daemon/lua/kres-gen.lua index 1b7571fbdaa78b1846010ae7f0b61dfd0fc0708c..4989c02c7fecf3a1cc16263c646d10b1887bf3f1 100644 --- a/daemon/lua/kres-gen.lua +++ b/daemon/lua/kres-gen.lua @@ -166,6 +166,7 @@ struct kr_rplan { struct kr_request_qsource_flags { _Bool tcp : 1; _Bool tls : 1; + _Bool http : 1; }; struct kr_request { struct kr_context *ctx; diff --git a/lib/resolve.h b/lib/resolve.h index 60d80bb295bdee602280b94e92ac71dfed5d5824..ae695b9136dc6207159cded2b8ceed6c66159b25 100644 --- a/lib/resolve.h +++ b/lib/resolve.h @@ -179,6 +179,7 @@ struct kr_context struct kr_request_qsource_flags { bool tcp:1; /**< true if the request is on TCP (or TLS); only meaningful if (dst_addr). */ bool tls:1; /**< true if the request is on TLS; only meaningful if (dst_addr). */ + bool http:1; /**< true if the request is on HTTP; only meaningful if (dst_addr). */ }; /** diff --git a/modules/http/http_doh.lua b/modules/http/http_doh.lua index 4088ad07bed232bd7ee7e75cd1a1cf71e660c20d..68ee3b17728a51b6fcb58be5cadb2f2f574ef82c 100644 --- a/modules/http/http_doh.lua +++ b/modules/http/http_doh.lua @@ -92,6 +92,10 @@ local function serve_doh(h, stream) local function init_cb(req) req.qsource.addr = convert_sockaddr(stream:peername()) req.qsource.dst_addr = convert_sockaddr(stream:localname()) + req.qsource.flags.tcp = true + req.qsource.flags.tls = (stream.connection:checktls() ~= nil) + print(req.qsource.flags.tls) + req.qsource.flags.http = true end -- resolve query