MCPcopy
hub / github.com/bettercap/bettercap / ToQuery

Method ToQuery

modules/dns_proxy/dns_proxy_js_query.go:295–356  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

293}
294
295func (j *JSQuery) ToQuery() *dns.Msg {
296 var answers []dns.RR
297 var extras []dns.RR
298 var nameservers []dns.RR
299 var questions []dns.Question
300
301 for _, jsRR := range j.Answers {
302 rr, err := ToRR(jsRR)
303 if err != nil {
304 log.Error(err.Error())
305 continue
306 }
307 answers = append(answers, rr)
308 }
309 for _, jsRR := range j.Extras {
310 rr, err := ToRR(jsRR)
311 if err != nil {
312 log.Error(err.Error())
313 continue
314 }
315 extras = append(extras, rr)
316 }
317 for _, jsRR := range j.Nameservers {
318 rr, err := ToRR(jsRR)
319 if err != nil {
320 log.Error(err.Error())
321 continue
322 }
323 nameservers = append(nameservers, rr)
324 }
325
326 for _, jsQ := range j.Questions {
327 questions = append(questions, dns.Question{
328 Name: jsPropToString(jsQ, "Name"),
329 Qtype: jsPropToUint16(jsQ, "Qtype"),
330 Qclass: jsPropToUint16(jsQ, "Qclass"),
331 })
332 }
333
334 query := &dns.Msg{
335 MsgHdr: dns.MsgHdr{
336 Id: j.Header.Id,
337 Response: j.Header.Response,
338 Opcode: j.Header.Opcode,
339 Authoritative: j.Header.Authoritative,
340 Truncated: j.Header.Truncated,
341 RecursionDesired: j.Header.RecursionDesired,
342 RecursionAvailable: j.Header.RecursionAvailable,
343 Zero: j.Header.Zero,
344 AuthenticatedData: j.Header.AuthenticatedData,
345 CheckingDisabled: j.Header.CheckingDisabled,
346 Rcode: j.Header.Rcode,
347 },
348 Compress: j.Compress,
349 Question: questions,
350 Answer: answers,
351 Ns: nameservers,
352 Extra: extras,

Callers 2

onRequestFilterMethod · 0.80
onResponseFilterMethod · 0.80

Calls 5

ErrorFunction · 0.92
ToRRFunction · 0.85
jsPropToStringFunction · 0.85
jsPropToUint16Function · 0.85
ErrorMethod · 0.45

Tested by

no test coverage detected