@torrent-tv/proxy 2.55.13 → 2.55.14

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 2.55.14
2
+
3
+ - **Fix**: `utp-native` moves to 2.5.3-ttv.5, which carries ten defects found by reading the whole binding after the seventh crash of this family named its frame. Three callbacks read the connection pointer without checking it exists — and the socket carries none unless it was accepted or dialled, while its destructor announces itself regardless; the ttv.4 patch created one such path itself. The read callback copied at an accumulated offset without ever consulting the buffer length it maintains, so a peer sending more between two hand-offs wrote past the end — heap corruption does not fault where it happens, which is what six deaths inside libuv bookkeeping look like. A connection could be destroyed twice, deleting already-deleted napi references, and the socket pointer was never cleared. The callback macro checked none of the three napi results it then used. Plus IPv6, which the module never had at all, and the resolver that fed it addresses it could not use. Tests on the target: 77 checks, no failures — two of them were failing or hanging before.
4
+ - **Chore**: `--sctp-debug` is removed. It set node-datachannel's log level to verbose and filtered for `usrsctp:` lines, which only exist in a binary built with `SCTP_DEBUG=ON` — a source rebuild of libdatachannel that is not done any more. A flag that cannot do anything in any image we ship is an untruthful interface; the delivery probes of 2.55.13 answer the question it was wanted for (a probe on an unordered, no-retransmit channel passes head-of-line blocking in another stream but not a closed receive window) without touching the native build.
5
+
1
6
  ## 2.55.13
2
7
 
3
8
  - **New**: numbered delivery probes (`services/delivery-probe.js`). Every channel of a connection carries a numbered probe twice a second; the far end echoes back the highest number it saw on each, and the gaps are read into a verdict — `flowing`, `stream-stuck` (a retransmission held up in one stream), `association-stopped` (the window shut or transmission halted), `reverse-direction-gone`. The proxy's own counters could never separate those: libdatachannel's `bytesSent` counts bytes accepted into usrsctp, not bytes put on the wire. Logged as `[dc-probe]`, with the numbers that produced each verdict beside it.
package/bin/cli.js CHANGED
@@ -98,7 +98,6 @@ program
98
98
  DEFAULT_SEGMENT_FORMAT_ID
99
99
  )
100
100
  .option("--token <token>", "Registration token", "")
101
- .option("--sctp-debug", "Enable verbose SCTP debug logging (SCTP_DEBUG build only)")
102
101
  .addHelpText("after", HELP_EXAMPLES);
103
102
 
104
103
  program.parse(process.argv);
@@ -284,24 +283,6 @@ async function shutdown(signal) {
284
283
 
285
284
  try {
286
285
  logToFile(options.logFile);
287
- // Diagnostic: verbose SCTP logging. The binary must have been built with
288
- // SCTP_DEBUG=ON (addon 0.48.0); this flag merely sets the log level.
289
- if (options.sctpDebug) {
290
- try {
291
- const mod = await import("node-datachannel");
292
- const target = mod.default ?? mod;
293
- if (typeof target.initLogger === "function") {
294
- target.initLogger("Verbose", (level, message) => {
295
- if (typeof message === "string" && message.startsWith("usrsctp:")) {
296
- logger.info(message);
297
- }
298
- });
299
- logger.info("SCTP debug verbose logging enabled");
300
- }
301
- } catch (error) {
302
- logger.warn(`Failed to enable SCTP debug: ${error?.message ?? error}`);
303
- }
304
- }
305
286
  if (transcodeAudio) {
306
287
  assertFfmpegAvailability();
307
288
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@torrent-tv/proxy",
3
- "version": "2.55.13",
3
+ "version": "2.55.14",
4
4
  "description": "Torrent proxy client that exposes webseed-like HTTP stream endpoint.",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "publishConfig": {
@@ -45,6 +45,6 @@
45
45
  "@biomejs/biome": "^2.5.7"
46
46
  },
47
47
  "overrides": {
48
- "utp-native": "npm:@torrent-tv/utp-native@2.5.3-ttv.4"
48
+ "utp-native": "npm:@torrent-tv/utp-native@2.5.3-ttv.5"
49
49
  }
50
50
  }