From 067f06c0a2144c3d1a1730097443234150f66123 Mon Sep 17 00:00:00 2001 From: jsrobson10 Date: Fri, 19 Apr 2019 12:16:59 +1000 Subject: [PATCH] Iscolated ordered data functions. --- scripts/communications.js | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/scripts/communications.js b/scripts/communications.js index dacb6f7..489f942 100644 --- a/scripts/communications.js +++ b/scripts/communications.js @@ -171,12 +171,7 @@ function test_socks_test(text) socket.write(text); } -// Recieve helper global varibles -var recieve_buffer = new Buffer.alloc(0); -var recieve_get = false; -var recieve_size = 0; - -function recieve_ordered(data, callback) +function recieve_ordered(data, recieve, callback) { // Convert the data into a buffer data = toBuffer(data); @@ -185,39 +180,39 @@ function recieve_ordered(data, callback) for(var i=0;i= 4) + if(recieve.buffer.length >= 4) { // Get the number - recieve_size = recieve_buffer.readUInt32BE(0); + recieve.size = recieve.buffer.readUInt32BE(0); // Reset the buffer - recieve_buffer = new Buffer.alloc(0); + recieve.buffer = new Buffer.alloc(0); // Set the get data mode to true - recieve_get = true; + recieve.get = true; } } else { // Is the recieve buffer as big as the size - if(recieve_buffer.length == recieve_size) + if(recieve.buffer.length == recieve.size) { // Call the callback - callback(recieve_buffer); + callback(recieve.buffer); // Reset the buffer and the size - recieve_buffer = new Buffer.alloc(0); - recieve_size = 0; + recieve.buffer = new Buffer.alloc(0); + recieve.size = 0; // Set the get data mode to false - recieve_get = false; + recieve.get = false; } } } @@ -431,11 +426,18 @@ function connect(profile, connection_id) }); }); + // Create the recieve ordered memory model + var recieve_ordered_memory = { + buffer: new Buffer.alloc(0), + get: false, + size: 0 + } + // Wait for data client.on('data', function(data) { // Recieve data in order - recieve_ordered(data, function(data) + recieve_ordered(data, recieve_ordered_memory, function(data) { /*console.log("RAW: ", { input: data,