MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / readPacket

Method readPacket

modules/crypt/ssl/session_419.js:242–273  ·  view source on GitHub ↗
(s)

Source from the content-addressed store, hash-verified

240 s.writable -= packet.byteLength;
241 }
242 readPacket(s) {
243 let packetBuffer = this.packetBuffer;
244 if (!packetBuffer || (packetBuffer.offset < 5)) {
245 if (!packetBuffer) {
246 packetBuffer = this.packetBuffer = new Uint8Array(new ArrayBuffer(5, {maxByteLength: 32768}));
247 packetBuffer.offset = 0;
248 }
249
250 const need = Math.min(5 - packetBuffer.offset, s.readable);
251 s.read(this.packetBuffer.subarray(packetBuffer.offset, packetBuffer.offset + need));
252 s.readable -= need;
253 packetBuffer.offset += need;
254 if (packetBuffer.offset < 5)
255 return;
256
257 this.packetBuffer.buffer.resize(((packetBuffer[3] << 8) | packetBuffer[4]) + 5); /* packet length including 5 byte header */
258 }
259 let need = packetBuffer.length - packetBuffer.offset;
260 if (need) {
261 if (!s.readable)
262 return;
263 if (need > s.readable)
264 need = s.readable;
265 s.read(packetBuffer.subarray(packetBuffer.offset, packetBuffer.offset + need));
266 s.readable -= need;
267 packetBuffer.offset += need;
268 if (packetBuffer.offset < packetBuffer.length)
269 return;
270 }
271 delete this.packetBuffer;
272 return packetBuffer.buffer;
273 }
274 putData(data) {
275 this.applicationData = data;
276 data.position = data.byteOffset;

Callers 2

handshakeMethod · 0.95
readMethod · 0.95

Calls 1

readMethod · 0.65

Tested by

no test coverage detected