Stop reading all rejected uploads and close stalled transfers

Guard the export, save, mod and stream routes with one middleware that
closes the connection of an upload answered before its body was read,
and of a transfer that has made no progress for the new
controller.transfer_idle_timeout.

The save and mod uploads share one handler that responds on the first
error instead of reading the rest of the upload, and uploads cut short
now fail the transfer instead of leaving it hanging.

Node's 5 minute limit on receiving a request is turned off so large
uploads over slow connections are not cut off.
This commit is contained in:
Danielv123 committed 2026-11-10 21:59:03 +01:00
1 parent 60a4b103ab
commit 49ddc9ebd1
6 files changed
+617 -257

No files matched your search

+11
View File
@@ -231,6 +231,17 @@ Must be greater than 0.
Defaults to 15.
### controller.transfer_idle_timeout
Time in seconds an upload to or download from the controller can go without any data being transferred before the controller closes it.
This applies to saves, mods and exports uploaded to the controller and to proxy streams through it.
There is no limit on how long a transfer can take as long as it keeps making progress.
Time spent waiting for a proxy stream to start also counts, so this should be higher than controller.proxy_stream_timeout.
Must be greater than 0.
Defaults to 60.
### controller.factorio_username
Username of the Factorio.com account to authenticate with the Factorio API with.