1 files changed,
13 insertions(+),
16 deletions(-)
Author:
Oleksandr Smirnov
olexsmir@gmail.com
Committed at:
2026-03-26 18:32:17 +0200
Change ID:
mlnrrnlqwtprnlxwylkyrqxlqmqxyovw
Parent:
0d2ab83
M
dns-server/record.go
··· 84 84 start := b.Len() 85 85 switch r.Type { 86 86 case AType: 87 - _ = writeName(b, r.Name) 88 - _ = binary.Write(b, binary.BigEndian, r.Type) 89 - _ = binary.Write(b, binary.BigEndian, r.Class) 90 - _ = binary.Write(b, binary.BigEndian, r.TTL) 87 + _ = r.writePremable(b) 91 88 _ = binary.Write(b, binary.BigEndian, uint16(4)) 92 89 93 90 ip := net.ParseIP(r.Data).To4() ··· 98 95 _, _ = b.Write(ip) 99 96 100 97 case AAAAType: 101 - _ = writeName(b, r.Name) 102 - _ = binary.Write(b, binary.BigEndian, r.Type) 103 - _ = binary.Write(b, binary.BigEndian, r.Class) 104 - _ = binary.Write(b, binary.BigEndian, r.TTL) 98 + _ = r.writePremable(b) 105 99 _ = binary.Write(b, binary.BigEndian, uint16(16)) 106 100 107 101 ip := net.ParseIP(r.Data).To16() ··· 112 106 _, _ = b.Write(ip) 113 107 114 108 case NSType, CNAMEType: 115 - _ = writeName(b, r.Name) 116 - _ = binary.Write(b, binary.BigEndian, r.Type) 117 - _ = binary.Write(b, binary.BigEndian, r.Class) 118 - _ = binary.Write(b, binary.BigEndian, r.TTL) 109 + _ = r.writePremable(b) 119 110 120 111 encoded := encodeName(r.Data) 121 112 _ = binary.Write(b, binary.BigEndian, uint16(len(encoded))) 122 113 _, _ = b.Write(encoded) 123 114 124 115 case MXType: 125 - _ = writeName(b, r.Name) 126 - _ = binary.Write(b, binary.BigEndian, r.Type) 127 - _ = binary.Write(b, binary.BigEndian, r.Class) 128 - _ = binary.Write(b, binary.BigEndian, r.TTL) 116 + _ = r.writePremable(b) 129 117 130 118 encoded := encodeName(r.Data) 131 119 _ = binary.Write(b, binary.BigEndian, uint16(2+len(encoded))) ··· 137 125 } 138 126 139 127 return b.Len() - start, nil 128 +} 129 + 130 +func (r Record) writePremable(b *bytes.Buffer) error { 131 + // TODO: errors 132 + _ = writeName(b, r.Name) 133 + _ = binary.Write(b, binary.BigEndian, r.Type) 134 + _ = binary.Write(b, binary.BigEndian, r.Class) 135 + _ = binary.Write(b, binary.BigEndian, r.TTL) 136 + return nil 140 137 } 141 138 142 139 func readName(r *bytes.Reader, packet []byte) (string, error) {