@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 +5 -0
- package/bin/cli.js +0 -19
- package/package.json +2 -2
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.
|
|
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.
|
|
48
|
+
"utp-native": "npm:@torrent-tv/utp-native@2.5.3-ttv.5"
|
|
49
49
|
}
|
|
50
50
|
}
|