From 3f2c814f1be6829275ae9b322eb6de96f3818797 Mon Sep 17 00:00:00 2001 From: MDMCK10 <21245760+MDMCK10@users.noreply.github.com> Date: Thu, 6 Apr 2023 21:11:13 +0200 Subject: [PATCH] Maybe not. This commit reverts 31706c7, 983860f, 90b91bc. --- src/QMPClient.ts | 88 +++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 46 deletions(-) diff --git a/src/QMPClient.ts b/src/QMPClient.ts index 12174af..7232f77 100644 --- a/src/QMPClient.ts +++ b/src/QMPClient.ts @@ -2,7 +2,6 @@ import EventEmitter from "events"; import { Socket } from "net"; import { Mutex } from "async-mutex"; import log from "./log.js"; -import { EOL } from 'os' export default class QMPClient extends EventEmitter { socketfile : string; @@ -47,52 +46,49 @@ export default class QMPClient extends EventEmitter { } private async onData(data : Buffer) { - let msgraw = data.toString().split(EOL).filter(n => n); - for(var message in msgraw) { - let msg; + let msgraw = data.toString(); + let msg; - try { - msg = JSON.parse(msgraw[message]); - } catch { - this.emit("qmpreturn", ""); - return; - } - - if (msg.QMP !== undefined) { - if (this.sentConnected) - return; - - await this.execute({ execute: "qmp_capabilities" }); - - this.emit('connected'); - this.sentConnected = true; - } - if (msg.return !== undefined) - this.emit("qmpreturn", msg.return); - else if(msg.event !== undefined) { - switch(msg.event) { - case "STOP": - { - log("INFO", "The VM was shut down, restarting..."); - this.reboot(); - break; - } - case "RESET": - { - log("INFO", "QEMU reset event occured"); - this.resume(); - break; - }; - default: { - this.emit("qmpreturn", ""); - break; - } - } - }else - // for now just return an empty string. - // This is a giant hack but avoids a deadlock - this.emit("qmpreturn", ""); + try { + msg = JSON.parse(msgraw); + } catch { + return; } + + if (msg.QMP !== undefined) { + if (this.sentConnected) + return; + + await this.execute({ execute: "qmp_capabilities" }); + + this.emit('connected'); + this.sentConnected = true; + } + if (msg.return !== undefined) + this.emit("qmpreturn", msg.return); + else if(msg.event !== undefined) { + switch(msg.event) { + case "STOP": + { + log("INFO", "The VM was shut down, restarting..."); + this.reboot(); + break; + } + case "RESET": + { + log("INFO", "QEMU reset event occured"); + this.resume(); + break; + }; + default: { + this.emit("qmpreturn", ''); + break; + } + } + }else + // for now just return an empty string. + // This is a giant hack but avoids a deadlock + this.emit("qmpreturn", ''); } private onClose() { @@ -154,4 +150,4 @@ export default class QMPClient extends EventEmitter { res(await this.execute({execute: "human-monitor-command", arguments: {"command-line": command}})); }); } -} +} \ No newline at end of file