summaryrefslogtreecommitdiff
path: root/internal/dns/question.go
diff options
context:
space:
mode:
authorradhitya <alif@radhitya.org>2026-07-04 14:29:02 +0700
committerradhitya <alif@radhitya.org>2026-07-04 14:29:02 +0700
commit52a0d3845ead07f840e9e99cb4a8c3507c84ab30 (patch)
treeb9a08117bdcb35a1a0e61543b0859db8f4aa6bfd /internal/dns/question.go
parente9d3659ef41b9b5fd5e7cc7bd04ae3fc07850044 (diff)
fiuh
Diffstat (limited to 'internal/dns/question.go')
-rw-r--r--internal/dns/question.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/internal/dns/question.go b/internal/dns/question.go
index 101cb0a..489082c 100644
--- a/internal/dns/question.go
+++ b/internal/dns/question.go
@@ -1,7 +1,30 @@
package dns
+// https://datatracker.ietf.org/doc/html/rfc1035#section-4.1.2
type Question struct {
Name Name
Type uint16
Class uint16
}
+
+func (q *Question) pack(p *packer) error {
+ if err := p.writeName(q.Name); err != nil {
+ return err
+ }
+ p.writeUint16(q.Type)
+ p.writeUint16(q.Class)
+ return nil
+}
+func (q *Question) unpack(u *unpacker) error {
+ var err error
+ q.Name, err = u.readName()
+ if err != nil {
+ return err
+ }
+ q.Type, err = u.readUint16()
+ if err != nil {
+ return err
+ }
+ q.Class, err = u.readUint16()
+ return err
+}