def query.if

bend-kit-dns@0.7.0.0 · dns.bend:62

import bend-kit-dns@0.7.0.0/dns.bend as Dns
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes

62def query.if(+id: U32, +xs: List<&2, String>, ok: Bool) -> Maybe<&1, Bytes.Bytes>:
63  match ok:
64    case False{}:
65      None{}
66    case True{}:
67      # header: id, RD, QDCOUNT 1; question: QNAME, QTYPE A, QCLASS IN.
68      c = Bytes.Cursor.new(Bytes.new((labels.len(xs, 0) + 17 : U32)))
69      c = written(Bytes.Cursor.put.u16be(c, id))
70      c = written(Bytes.Cursor.put.u16be(c, 256))
71      c = written(Bytes.Cursor.put.u16be(c, 1))
72      c = written(Bytes.Cursor.skip(c, 6))
73      c = labels.put(xs, c)
74      c = written(Bytes.Cursor.put.u16be(c, 1))
75      c = written(Bytes.Cursor.put.u16be(c, 1))
76      query.done(Bytes.Cursor.finish(c))

Uses (16)

Used by (1)