summaryrefslogtreecommitdiff
path: root/internal/dns/question.go
diff options
context:
space:
mode:
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
+}