From baa85e43c220f98f9cd5195588d63db9d2282d46 Mon Sep 17 00:00:00 2001 From: vortex Date: Tue, 6 Aug 2024 08:11:08 +0200 Subject: [PATCH] adds separation of query & rendering --- golang/wasm/pure.js | 84 +++++++++++++++++++++++--------------- golang/wasm/wasm_exec.html | 2 +- 2 files changed, 53 insertions(+), 33 deletions(-) diff --git a/golang/wasm/pure.js b/golang/wasm/pure.js index 55f3faa..565fbdf 100644 --- a/golang/wasm/pure.js +++ b/golang/wasm/pure.js @@ -517,35 +517,66 @@ const DNS_CLASS = [ // "QCLASS * (ANY)", // 255 ] +// renderQuery +async function renderQuery() { + + var domain = document.getElementById("query-name").value + if (domain == "") { + domain = "zenr.io" + } + + var rrType = document.getElementById("query-type").value + if (rrType == "") { + rrType = 'A' + } + + const pre = document.getElementById("query-result") + if (pre.children.length > 0) { + pre.removeChild(pre.children[0]) + } + + const ul = document.createElement("ul") + + responseJson = await query(domain, rrType) + + const getDohServer = window.goFuncs.getDefaultDOHResolver + dohServer = document.createElement("li") + dohServer.innerHTML = "Query DOH responder: " + getDohServer() + ul.appendChild(dohServer) + + const dohQName = document.createElement("li") + dohQName.innerHTML = "Query Name: " + domain + ul.appendChild(dohQName) + + const dohQType = document.createElement("li") + dohQType.innerHTML = "Query RRType: " + rrType + ul.appendChild(dohQType) + + + const raw = document.createElement("li") + raw.innerHTML = JSON.stringify(responseJson, null, 4) + ul.appendChild(raw) + + pre.appendChild(ul) + +} // query() // for a given name and RR type, return dns response -async function query() { +async function query(dohQName, dohQType) { // set query question name - var dohQName = document.getElementById("query-name").value - - // DEBUG - if (dohQName == "") { - dohQName = "zenr.io" - } + // var dohQName = document.getElementById("query-name").value + // append . if (! dohQName.endsWith('.')) { dohQName = dohQName + '.' } - // set query question RR type - var dohQType = document.getElementById("query-type").value + // set default query question RR type if (dohQType == "") { dohQType = 'A' } - const pre = document.getElementById("query-result") - if (pre.children.length > 0) { - pre.removeChild(pre.children[0]) - } - - const ul = document.createElement("ul") - const dohQuery = window.goFuncs.query result = await dohQuery(dohQName, dohQType) @@ -582,7 +613,7 @@ async function query() { }) if (resultJson.Answer != null) { - console.log("This response has Answer array length of ", resultJson.Answer.length) + console.log("DOH response has Answer array length of ", resultJson.Answer.length) resultJson.Answer.forEach(answer => { @@ -628,11 +659,11 @@ async function query() { }) } else { - console.log("This response has null as Answer property") + console.log("DOH response has null as Answer property") } if (resultJson.Ns != null) { - console.log("This response has Ns array length of ", resultJson.Ns.length) + console.log("DOH response has Ns array length of ", resultJson.Ns.length) resultJson.Ns.forEach(answer => { @@ -679,19 +710,8 @@ async function query() { }) } else { - console.log("This response has null as Ns property") + console.log("DOH response has null as Ns property") } - const getDohServer = window.goFuncs.getDefaultDOHResolver - dohServer = document.createElement("li") - dohServer.innerHTML = "Querying DOH host: " + getDohServer() - ul.appendChild(dohServer) - - const raw = document.createElement("li") - raw.innerHTML = JSON.stringify(resultJson, null, 4) - ul.appendChild(raw) - - pre.appendChild(ul) - - return + return resultJson } diff --git a/golang/wasm/wasm_exec.html b/golang/wasm/wasm_exec.html index 8cc62a0..65ac17f 100644 --- a/golang/wasm/wasm_exec.html +++ b/golang/wasm/wasm_exec.html @@ -11,7 +11,7 @@

DOH Resolver

- +