@@ -2,10 +2,9 @@ import { stringToBinary, EncodingScheme } from "./encoding";
22import { Uint16 , Uint8 , Uint32 } from "./types" ;
33
44/**
5- * Maximum size of a TCP packet is 64K (65535 bytes), length of a DNS message is 2 bytes.
6- * Thus, the message size itself should not exceed 65535-2, which is 0xfffd.
5+ * Maximum size of a DNS packet is 64K (65535 bytes) because the payload length field is a 16-bit.
76 */
8- export const MAX_MESSAGE_SIZE = 0xFFFD ;
7+ export const MAX_MESSAGE_SIZE = 0xFFFF ;
98
109/**
1110 * Allows for reading bytes from a source.
@@ -49,7 +48,7 @@ export interface Reader {
4948 * at the index 'end'. Default to the end of the source if not specified.
5049 * @returns An array of bytes read
5150 */
52- read ( offset ?: number , end ?: number ) : Uint8Array ;
51+ slice ( offset ?: number , end ?: number ) : Uint8Array ;
5352}
5453
5554/**
@@ -123,13 +122,13 @@ export interface Writer {
123122 *
124123 * It is able to grow exponentially when it is writable.
125124 */
126- export class OctetBuffer implements Reader , Writer {
125+ export class PacketBuffer implements Reader , Writer {
127126 buf ! : Uint8Array ;
128127 private offset = 0 ;
129128 private writable = false ;
130129
131130 /**
132- * Initializes a writable OctetBuffer object with default 1232 bytes that are zero-filled.
131+ * Initializes a writable PacketBuffer object with default 1232 bytes that are zero-filled.
133132 *
134133 * @param buf
135134 */
@@ -143,21 +142,21 @@ export class OctetBuffer implements Reader, Writer {
143142 *
144143 * @param size The initial size of the buffer.
145144 */
146- static alloc ( size : number ) : OctetBuffer {
147- return new OctetBuffer ( new Uint8Array ( size ) , true ) ;
145+ static alloc ( size : number ) : PacketBuffer {
146+ return new PacketBuffer ( new Uint8Array ( size ) , true ) ;
148147 }
149148
150149 /**
151- * Creates a readonly OctetBuffer object using the passed data.
150+ * Creates a readonly PacketBuffer object using the passed data.
152151 *
153152 * @param buf
154153 * @returns
155154 */
156- static from ( buf : ArrayLike < number > | ArrayBufferLike ) : OctetBuffer {
155+ static from ( buf : ArrayLike < number > | ArrayBufferLike ) : PacketBuffer {
157156 if ( buf instanceof Uint8Array ) {
158- return new OctetBuffer ( buf , false ) ;
157+ return new PacketBuffer ( buf , false ) ;
159158 }
160- return new OctetBuffer ( new Uint8Array ( buf ) , false ) ;
159+ return new PacketBuffer ( new Uint8Array ( buf ) , false ) ;
161160 }
162161
163162 checkWrite ( offset : number , extra : number ) : void {
@@ -221,7 +220,7 @@ export class OctetBuffer implements Reader, Writer {
221220 return ( this . buf [ pos ] * 0x1000000 ) + ( ( this . buf [ pos + 1 ] << 16 ) | ( this . buf [ pos + 2 ] << 8 ) | this . buf [ pos + 3 ] ) ;
222221 }
223222
224- read ( offset = 0 , end = this . buf . length ) : Uint8Array {
223+ slice ( offset = 0 , end = this . buf . length ) : Uint8Array {
225224 this . checkRead ( offset , end - offset ) ;
226225 return this . buf . slice ( offset , end ) ;
227226 }
@@ -273,7 +272,7 @@ export class OctetBuffer implements Reader, Writer {
273272 return this . write ( data ) ;
274273 }
275274
276- freeze ( len : number ) : OctetBuffer {
275+ freeze ( len : number ) : PacketBuffer {
277276 this . buf = this . buf . subarray ( 0 , len ) ;
278277 this . writable = false ;
279278 return this ;
0 commit comments