stagelinq 3.3.0 → 3.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,12 +10,41 @@ export declare class NetworkDevice {
10
10
  private connectedSources;
11
11
  private connectionInfo;
12
12
  private logger;
13
+ /** Trailing bytes of a partially-received message, held for the next read. */
14
+ private queue;
15
+ /** Message ids already warned about, so a desync logs once and not per read. */
16
+ private readonly warnedMessageIds;
17
+ /** uint32 message id + 16 byte device token. */
18
+ private static readonly HEADER_BYTES;
19
+ /**
20
+ * Longest UTF-16 service name a ServicesAnnouncement may claim, in bytes.
21
+ * A larger prefix means framing is lost rather than that a big message is
22
+ * still on its way, and without the cap the queue would grow forever.
23
+ */
24
+ private static readonly MAX_SERVICE_NAME_BYTES;
13
25
  constructor(info: ConnectionInfo, logger?: Logger);
14
26
  private get address();
15
27
  private get port();
16
28
  connect(): Promise<void>;
17
29
  disconnect(): void;
30
+ /**
31
+ * Split one TCP read into whole messages and apply each.
32
+ *
33
+ * A read is an arbitrary slice of the stream, not a tidy list of messages:
34
+ * one message can straddle two reads and several can arrive in one. Anything
35
+ * left incomplete is held in `queue` and prepended to the next read. Before
36
+ * this, a split message ran the parser off the end of the buffer and the
37
+ * resulting assert escaped into the socket's 'data' handler, where it became
38
+ * an uncaught exception.
39
+ */
18
40
  messageHandler(p_message: Buffer): void;
41
+ /**
42
+ * Read exactly one message, or report why it could not be read.
43
+ *
44
+ * `need-more` means the bytes are valid but incomplete; the caller rewinds
45
+ * and waits. `desync` means the stream no longer lines up with the protocol.
46
+ */
47
+ private readMessage;
19
48
  getPort(): number;
20
49
  getTimeAlive(): number;
21
50
  connectToService<T extends InstanceType<typeof services.Service>>(ctor: {
@@ -57,6 +57,10 @@ class NetworkDevice {
57
57
  this.services = {};
58
58
  this.timeAlive = 0;
59
59
  this.connectedSources = {};
60
+ /** Trailing bytes of a partially-received message, held for the next read. */
61
+ this.queue = null;
62
+ /** Message ids already warned about, so a desync logs once and not per read. */
63
+ this.warnedMessageIds = new Set();
60
64
  this.connectionInfo = info;
61
65
  this.logger = logger;
62
66
  }
@@ -72,6 +76,7 @@ class NetworkDevice {
72
76
  const info = this.connectionInfo;
73
77
  this.logger.debug(`Attempting to connect to ${info.address}:${info.port}`);
74
78
  this.connection = await tcp.connect(info.address, info.port, this.logger);
79
+ this.queue = null;
75
80
  this.connection.socket.on('data', (p_message) => {
76
81
  this.messageHandler(p_message);
77
82
  });
@@ -86,36 +91,109 @@ class NetworkDevice {
86
91
  (0, assert_1.strict)(this.connection);
87
92
  this.connection.destroy();
88
93
  this.connection = null;
94
+ this.queue = null;
89
95
  }
90
96
  ///////////////////////////////////////////////////////////////////////////
91
97
  // Message Handler
98
+ /**
99
+ * Split one TCP read into whole messages and apply each.
100
+ *
101
+ * A read is an arbitrary slice of the stream, not a tidy list of messages:
102
+ * one message can straddle two reads and several can arrive in one. Anything
103
+ * left incomplete is held in `queue` and prepended to the next read. Before
104
+ * this, a split message ran the parser off the end of the buffer and the
105
+ * resulting assert escaped into the socket's 'data' handler, where it became
106
+ * an uncaught exception.
107
+ */
92
108
  messageHandler(p_message) {
93
- const ctx = new ReadContext_1.ReadContext(p_message.buffer, false);
94
- while (ctx.isEOF() === false) {
95
- const id = ctx.readUInt32();
96
- // const deviceToken = ctx.read(16);
97
- ctx.seek(16);
98
- switch (id) {
99
- case types_1.MessageId.TimeStamp:
100
- ctx.seek(16);
101
- // const secondToken = ctx.read(16); // should be 00..
102
- // we _shouldn't_ be receiving anything but blank tokens in the 2nd field
103
- // assert(secondToken.every((x) => x === 0));
104
- // Time Alive is in nanoseconds; convert back to seconds
105
- this.timeAlive = Number(ctx.readUInt64() / (1000n * 1000n * 1000n));
106
- // this.sendTimeStampMsg(deviceToken, Tokens.SoundSwitch);
109
+ const buffer = this.queue && this.queue.length > 0 ? Buffer.concat([this.queue, p_message]) : p_message;
110
+ // Bound the view to this Buffer's own bytes. `.buffer` alone is the whole
111
+ // backing store, which for a pooled or concatenated Buffer holds bytes that
112
+ // are not part of this message.
113
+ const arrayBuffer = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
114
+ const ctx = new ReadContext_1.ReadContext(arrayBuffer, false);
115
+ this.queue = null;
116
+ try {
117
+ while (ctx.isEOF() === false) {
118
+ const start = ctx.tell();
119
+ const result = this.readMessage(ctx);
120
+ if (result === 'need-more') {
121
+ ctx.set(start);
122
+ this.queue = ctx.readRemainingAsNewBuffer();
107
123
  break;
108
- case types_1.MessageId.ServicesAnnouncement:
109
- const service = ctx.readNetworkStringUTF16();
110
- const port = ctx.readUInt16();
111
- this.servicePorts[service] = port;
112
- break;
113
- case types_1.MessageId.ServicesRequest:
114
- this.serviceRequestAllowed = true;
124
+ }
125
+ if (result === 'desync') {
126
+ // The id is unknown, so the message length is too, and there is no
127
+ // way to tell where the next one starts. Drop the rest of this read.
128
+ ctx.set(start);
129
+ this.logger.warn(`Lost framing on ${this.address}:${this.port}; dropping ${ctx.sizeLeft()} bytes`);
115
130
  break;
116
- default:
117
- assert_1.strict.fail(`NetworkDevice Unhandled message id '${id}'`);
131
+ }
132
+ }
133
+ }
134
+ catch (err) {
135
+ // Never let a parse failure reach the socket's 'data' handler, where it
136
+ // would surface as an uncaught exception and take out the whole process.
137
+ this.logger.error(`Failed to parse message from ${this.address}:${this.port}: ` +
138
+ (err instanceof Error ? err.message : String(err)));
139
+ this.queue = null;
140
+ }
141
+ }
142
+ /**
143
+ * Read exactly one message, or report why it could not be read.
144
+ *
145
+ * `need-more` means the bytes are valid but incomplete; the caller rewinds
146
+ * and waits. `desync` means the stream no longer lines up with the protocol.
147
+ */
148
+ readMessage(ctx) {
149
+ if (ctx.sizeLeft() < NetworkDevice.HEADER_BYTES) {
150
+ return 'need-more';
151
+ }
152
+ const id = ctx.readUInt32();
153
+ // const deviceToken = ctx.read(16);
154
+ ctx.seek(16);
155
+ switch (id) {
156
+ case types_1.MessageId.TimeStamp: {
157
+ // 16 byte second token, then the uptime as a uint64
158
+ if (ctx.sizeLeft() < 24) {
159
+ return 'need-more';
160
+ }
161
+ // const secondToken = ctx.read(16); // should be 00..
162
+ // we _shouldn't_ be receiving anything but blank tokens in the 2nd field
163
+ // assert(secondToken.every((x) => x === 0));
164
+ ctx.seek(16);
165
+ // Time Alive is in nanoseconds; convert back to seconds
166
+ this.timeAlive = Number(ctx.readUInt64() / (1000n * 1000n * 1000n));
167
+ // this.sendTimeStampMsg(deviceToken, Tokens.SoundSwitch);
168
+ return 'ok';
118
169
  }
170
+ case types_1.MessageId.ServicesAnnouncement: {
171
+ if (ctx.sizeLeft() < 4) {
172
+ return 'need-more';
173
+ }
174
+ const nameBytes = ctx.readUInt32();
175
+ ctx.seek(-4);
176
+ if (nameBytes % 2 !== 0 || nameBytes > NetworkDevice.MAX_SERVICE_NAME_BYTES) {
177
+ return 'desync';
178
+ }
179
+ // the length prefix, the name itself, and the uint16 port
180
+ if (ctx.sizeLeft() < 4 + nameBytes + 2) {
181
+ return 'need-more';
182
+ }
183
+ const service = ctx.readNetworkStringUTF16();
184
+ const port = ctx.readUInt16();
185
+ this.servicePorts[service] = port;
186
+ return 'ok';
187
+ }
188
+ case types_1.MessageId.ServicesRequest:
189
+ this.serviceRequestAllowed = true;
190
+ return 'ok';
191
+ default:
192
+ if (!this.warnedMessageIds.has(id)) {
193
+ this.warnedMessageIds.add(id);
194
+ this.logger.warn(`Unhandled message id '${id}' from ${this.address}:${this.port}`);
195
+ }
196
+ return 'desync';
119
197
  }
120
198
  }
121
199
  ///////////////////////////////////////////////////////////////////////////
@@ -276,4 +354,12 @@ class NetworkDevice {
276
354
  }
277
355
  }
278
356
  exports.NetworkDevice = NetworkDevice;
357
+ /** uint32 message id + 16 byte device token. */
358
+ NetworkDevice.HEADER_BYTES = 20;
359
+ /**
360
+ * Longest UTF-16 service name a ServicesAnnouncement may claim, in bytes.
361
+ * A larger prefix means framing is lost rather than that a big message is
362
+ * still on its way, and without the cap the queue would grow forever.
363
+ */
364
+ NetworkDevice.MAX_SERVICE_NAME_BYTES = 1024;
279
365
  //# sourceMappingURL=NetworkDevice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkDevice.js","sourceRoot":"","sources":["../../network/NetworkDevice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NetworkDevice.js","sourceRoot":"","sources":["../../network/NetworkDevice.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,6 @@ const types_1 = require("../types");
16
16
  const dgram_1 = require("dgram");
17
17
  const logger_1 = require("../types/logger");
18
18
  const os_1 = require("os");
19
- const assert_1 = require("assert");
20
19
  const ip_1 = require("ip");
21
20
  const WriteContext_1 = require("../utils/WriteContext");
22
21
  /**
@@ -61,6 +60,8 @@ const isWindows = (0, os_1.platform)() === 'win32';
61
60
  let moduleLogger = logger_1.noopLogger;
62
61
  /** Track targets that have already warned about send failures */
63
62
  const warnedTargets = new Set();
63
+ /** True while we are skipping announcements for want of a usable interface */
64
+ let warnedNoTargets = false;
64
65
  function writeDiscoveryMessage(p_ctx, p_message) {
65
66
  let written = 0;
66
67
  written += p_ctx.writeFixedSizedString(types_1.DISCOVERY_MESSAGE_MARKER);
@@ -150,8 +151,25 @@ function closeWindowsSockets() {
150
151
  */
151
152
  async function broadcastMessage(p_message) {
152
153
  const targets = findBroadcastTargets();
153
- (0, assert_1.strict)(targets.length > 0, 'No broadcast targets have been found');
154
+ // Wi-Fi asleep, cable unplugged, VPN-only: no interface to broadcast on. That
155
+ // is a state to sit out, not an error — throwing here used to escape the
156
+ // announce interval as an unhandled rejection on every tick.
157
+ if (targets.length === 0) {
158
+ if (!warnedNoTargets) {
159
+ moduleLogger.warn('No broadcast targets found; pausing announcements until an interface appears');
160
+ warnedNoTargets = true;
161
+ }
162
+ return;
163
+ }
164
+ if (warnedNoTargets) {
165
+ moduleLogger.info('Broadcast target available again; resuming announcements');
166
+ warnedNoTargets = false;
167
+ }
154
168
  if (isWindows) {
169
+ // An interface that appeared after announce() started has no socket yet.
170
+ if (targets.some((target) => !windowsSockets.has(target.localIP))) {
171
+ await initWindowsSockets();
172
+ }
155
173
  // Windows: send from each interface's socket to its broadcast address
156
174
  const promises = targets.map(async (target) => {
157
175
  const socket = windowsSockets.get(target.localIP);
@@ -240,7 +258,7 @@ async function unannounce(message, logger = logger_1.noopLogger) {
240
258
  announceClient.close();
241
259
  announceClient = null;
242
260
  }
243
- moduleLogger.info("Unannounced myself");
261
+ moduleLogger.info('Unannounced myself');
244
262
  }
245
263
  /**
246
264
  * Start announcing presence on the StageLinq network
@@ -265,20 +283,25 @@ async function announce(message, logger = logger_1.noopLogger) {
265
283
  const msg = new Uint8Array(ctx.getBuffer());
266
284
  // Immediately announce myself
267
285
  await broadcastMessage(msg);
268
- announceTimer = setInterval(broadcastMessage, types_1.ANNOUNCEMENT_INTERVAL, msg);
269
- moduleLogger.info("Announced myself");
286
+ announceTimer = setInterval(() => {
287
+ // The timer callback is the top of its own stack: anything that escapes
288
+ // becomes an unhandled rejection, so it has to be caught here.
289
+ broadcastMessage(msg).catch((err) => {
290
+ moduleLogger.error(`Failed to announce: ${err instanceof Error ? err.message : String(err)}`);
291
+ });
292
+ }, types_1.ANNOUNCEMENT_INTERVAL);
293
+ moduleLogger.info('Announced myself');
270
294
  }
271
- ;
272
295
  function createDiscoveryMessage(action, discoveryMessageOptions) {
273
296
  const msg = {
274
297
  action: action,
275
298
  port: 0,
276
299
  software: {
277
300
  name: discoveryMessageOptions.name,
278
- version: discoveryMessageOptions.version
301
+ version: discoveryMessageOptions.version,
279
302
  },
280
303
  source: discoveryMessageOptions.source,
281
- token: discoveryMessageOptions.token
304
+ token: discoveryMessageOptions.token,
282
305
  };
283
306
  return msg;
284
307
  }
@@ -1 +1 @@
1
- {"version":3,"file":"announce.js","sourceRoot":"","sources":["../../network/announce.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"announce.js","sourceRoot":"","sources":["../../network/announce.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stagelinq",
3
- "version": "3.3.0",
3
+ "version": "3.3.2",
4
4
  "description": "TypeScript library to connect to Denon StageLinq devices",
5
5
  "homepage": "https://github.com/chrisle/StageLinq",
6
6
  "repository": {