Fix sending log messages across invalid link (#639)

This commit is contained in:
Cooldude2606 authored and GitHub committed 2024-06-08 13:52:29 +01:00
1 parent 2c2521a688
commit dbc79779ea
2 files changed
+22 -1

No files matched your search

+19
View File
@@ -34,6 +34,7 @@ export abstract class BaseConnector extends events.EventEmitter {
}
protected abstract send(message: libData.MessageRoutable): void;
abstract get valid(): boolean;
forward(message: libData.MessageRoutable) {
const seq = this._seq;
@@ -346,6 +347,14 @@ export abstract class WebSocketBaseConnector extends BaseConnector {
get hasSession() {
return ["connected", "resuming"].includes(this._state);
}
/**
* True if the connector is valid and can accept new messages,
* only needs to be checked on fringe cases during setup and tear down.
*/
get valid() {
return this.hasSession;
}
}
/**
@@ -723,4 +732,14 @@ export class VirtualConnector extends BaseConnector {
send(message: libData.Message) {
this.other.emit("message", message);
}
/**
* True if the connector is valid and can accept new messages,
* only needs to be checked on fringe cases during setup and tear down.
*
* For a virtual connector this is always true.
*/
get valid() {
return true;
}
}
+3 -1
View File
@@ -207,7 +207,9 @@ export class LinkTransport extends Transport {
}
try {
this.link.send(new libData.LogMessageEvent(info));
if (this.link.connector.valid) {
this.link.send(new libData.LogMessageEvent(info));
}
} catch (err) {
// Ignore session lost errors.
if (!(err instanceof libErrors.SessionLost)) {