diff --git a/amt/amt-ider-module.js b/amt/amt-ider-module.js index 86ba5198..0d1f491e 100644 --- a/amt/amt-ider-module.js +++ b/amt/amt-ider-module.js @@ -108,6 +108,7 @@ module.exports.CreateAmtRemoteIder = function (webserver, meshcentral) { obj.bytesFromAmt = 0; obj.inSequence = 0; obj.outSequence = 0; + g_readQueue = []; // Send first command, OPEN_SESSION obj.SendCommand(0x40, webserver.common.ShortToStrX(obj.rx_timeout) + webserver.common.ShortToStrX(obj.tx_timeout) + webserver.common.ShortToStrX(obj.heartbeat) + webserver.common.IntToStrX(obj.version)); @@ -587,8 +588,8 @@ module.exports.CreateAmtRemoteIder = function (webserver, meshcentral) { if (obj.sectorStats) { obj.sectorStats(1, (dev == 0xA0) ? 0 : 1, mediaBlocks, lba, len); } if (dev == 0xA0) { lba <<= 9; len <<= 9; } else { lba <<= 11; len <<= 11; } if (g_media !== null) { - console.log('IDERERROR: Read while performing read'); - obj.Stop(); + // Queue read operation + g_readQueue.push({ media: media, dev: dev, lba: lba, len: len, fr: featureRegister }); } else { // obj.iderinfo.readbfr // TODO: MaxRead g_media = media; @@ -600,7 +601,7 @@ module.exports.CreateAmtRemoteIder = function (webserver, meshcentral) { } } - var g_dev, g_lba, g_len, g_media = null, g_reset = false; + var g_readQueue = [], g_dev, g_lba, g_len, g_media = null, g_reset = false; function sendDiskDataEx(featureRegister) { var len = g_len, lba = g_lba; if (g_len > obj.iderinfo.readbfr) { len = obj.iderinfo.readbfr; } @@ -613,7 +614,8 @@ module.exports.CreateAmtRemoteIder = function (webserver, meshcentral) { sendDiskDataEx(featureRegister); } else { g_media = null; - if (g_reset) { obj.SendCommand(0x47); g_reset = false; } // Send ResetOccuredResponse + if (g_reset) { obj.SendCommand(0x47); g_readQueue = []; g_reset = false; } // Send ResetOccuredResponse + else if (g_readQueue.length > 0) { var op = g_readQueue.shift(); g_media = op.media; g_dev = op.dev; g_lba = op.lba; g_len = op.len; sendDiskDataEx(op.fr); } // Un-queue read operation } }); } diff --git a/amt/amt-ider.js b/amt/amt-ider.js index dcd8871f..2fbb3fda 100644 --- a/amt/amt-ider.js +++ b/amt/amt-ider.js @@ -79,8 +79,6 @@ module.exports.CreateAmtIderSession = function (parent, db, ws, req, args, domai if (results[i].toLowerCase().endsWith('.img')) { floppyImages.push(results[i].substring(userPath.length + 1)); } else if (results[i].toLowerCase().endsWith('.iso')) { cdromImages.push(results[i].substring(userPath.length + 1)); } } - //console.log(floppyImages, cdromImages); - var xx, sel = true, html = "
=this.blockSize){for(var g=0;g b&&(z=k(b,c));m=z.toString(16);e.target.postMessage({hex:m,workLoad:u});
+z.dAddOffset(q,0)}}C=Math.max(1,C);for(var d=[],e=0;e=h.length())d.putByte(h.length()&127);else{l=h.length();b="";do b+=String.fromCharCode(l&255),l>>>=8;while(0
>>4^l)&252645135;l^=b;m^=b<<4;b=(m>>>16^l)&65535;l^=b;m^=b<<16;b=(l>>>2^m)&858993459;m^=b;l^=b<<2;b=(l>>>8^m)&16711935;m^=b;l^=b<<8;b=(m>>>1^l)&1431655765;for(var l=l^b,m=m^b<<1,m=m<<1|m>>>31,l=l<<1|l>>>31,w=0;w
b&&(z=n(b,c));k=z.toString(16);e.target.postMessage({hex:k,workLoad:A});
-z.dAddOffset(p,0)}}q=Math.max(1,q);for(var d=[],e=0;e
=a?27:150>=a?18:200>=a?15:250>=a?12:300>=a?9:350>=a?8:400>=a?7:500>=a?6:600>=a?5:800>=a?4:1250>=a?3:2}if(!a.prime){var k=a.prime=a.prime||{},h=a.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],q=new h(null);q.fromInt(30);var C=function(a,b){return a|b};k.generateProbablePrime=function(b,d,e){"function"===typeof d&&(e=d,d={});d=d||{};var h=d.algorithm||"PRIMEINC";"string"===typeof h&&(h={name:h});h.options=h.options||{};var l=d.prng||a.random;d={nextBytes:function(a){for(var b=l.getBytesSync(a.length),
-c=0;c