smoldot 3.3.2 → 3.4.0

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.
@@ -0,0 +1 @@
1
+ export default function (): string;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function default_1() { return "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"; }
4
+ exports.default = default_1;
@@ -121,7 +121,7 @@ function connectToInstanceServer(config) {
121
121
  if (!state.connections.has(message.connectionId))
122
122
  return;
123
123
  // The stream might have been reset locally in the past.
124
- if (message.streamId && !state.connections.get(message.connectionId).has(message.streamId))
124
+ if (message.streamId !== undefined && !state.connections.get(message.connectionId).has(message.streamId))
125
125
  return;
126
126
  break;
127
127
  }
@@ -130,7 +130,7 @@ function connectToInstanceServer(config) {
130
130
  if (!state.connections.has(message.connectionId))
131
131
  return;
132
132
  // The stream might have been reset locally in the past.
133
- if (message.streamId && !state.connections.get(message.connectionId).has(message.streamId))
133
+ if (message.streamId !== undefined && !state.connections.get(message.connectionId).has(message.streamId))
134
134
  return;
135
135
  break;
136
136
  }
@@ -452,7 +452,11 @@ function connect(config) {
452
452
  killAllJs();
453
453
  }
454
454
  else {
455
+ // The stream might have already been reset from the JS side, with the
456
+ // notification still on its way to smoldot.
455
457
  const channel = state.dataChannels.get(streamId);
458
+ if (channel === undefined)
459
+ return;
456
460
  channel.channel.onopen = null;
457
461
  channel.channel.onerror = null;
458
462
  channel.channel.onclose = null;
@@ -463,7 +467,14 @@ function connect(config) {
463
467
  }
464
468
  },
465
469
  send: (data, streamId) => {
470
+ // The stream might have already been reset from the JS side (entry removed),
471
+ // or the channel might have left the `open` state before its `close` event
472
+ // (which reports the reset) is dispatched; sending would then throw. Dropping
473
+ // the data is fine, as the stream is reset or about to be.
474
+ // See <https://github.com/paritytech/smoldot/issues/3322>.
466
475
  const channel = state.dataChannels.get(streamId);
476
+ if (channel === undefined || channel.channel.readyState !== "open")
477
+ return;
467
478
  for (const buffer of data) {
468
479
  channel.bufferedBytes += buffer.length;
469
480
  }
@@ -473,6 +484,13 @@ function connect(config) {
473
484
  openOutSubstream: () => {
474
485
  // `openOutSubstream` can only be called after we have called `config.onOpen`,
475
486
  // therefore `pc` is guaranteed to be non-null.
487
+ // The browser can however move the connection to `closed` before the
488
+ // `connectionstatechange` event (which reports the reset) is dispatched;
489
+ // `createDataChannel` would then throw. Doing nothing is fine, as the
490
+ // connection is about to be reset anyway.
491
+ // See <https://github.com/paritytech/smoldot/issues/3325>.
492
+ if (state.pc.signalingState === "closed")
493
+ return;
476
494
  // Note that the label passed to `createDataChannel` is required to be empty as
477
495
  // per the libp2p WebRTC specification.
478
496
  // TODO: adjusting the options based on the first substream is a bit hacky
@@ -1,4 +1,5 @@
1
1
  import { default as wasm0 } from './wasm0.js';
2
2
  import { default as wasm1 } from './wasm1.js';
3
3
  import { default as wasm2 } from './wasm2.js';
4
- export default "" + wasm0() + wasm1() + wasm2();
4
+ import { default as wasm3 } from './wasm3.js';
5
+ export default "" + wasm0() + wasm1() + wasm2() + wasm3();