diff --git a/server/settings/btsets.go b/server/settings/btsets.go
index 7720efb..3b7cedd 100644
--- a/server/settings/btsets.go
+++ b/server/settings/btsets.go
@@ -51,6 +51,9 @@ type BTSets struct {
SslPort int
SslCert string
SslKey string
+
+ // Reader
+ ResponsiveMode bool // enable Responsive reader (don't wait pieceComplete)
}
func (v *BTSets) String() string {
diff --git a/server/torr/stream.go b/server/torr/stream.go
index 240f771..055ba5c 100644
--- a/server/torr/stream.go
+++ b/server/torr/stream.go
@@ -53,6 +53,9 @@ func (t *Torrent) Stream(fileID int, req *http.Request, resp http.ResponseWriter
}
reader := t.NewReader(file)
+ if sets.BTsets.ResponsiveMode {
+ reader.SetResponsive()
+ }
host, port, err := net.SplitHostPort(req.RemoteAddr)
if sets.BTsets.EnableDebug {
diff --git a/web/src/components/Settings/SecondarySettingsComponent.jsx b/web/src/components/Settings/SecondarySettingsComponent.jsx
index 7097476..5ee7e93 100644
--- a/web/src/components/Settings/SecondarySettingsComponent.jsx
+++ b/web/src/components/Settings/SecondarySettingsComponent.jsx
@@ -34,6 +34,7 @@ export default function SecondarySettingsComponent({ settings, inputForm }) {
UploadRateLimit,
ConnectionsLimit,
PeersListenPort,
+ ResponsiveMode,
SslPort,
SslCert,
SslKey,
@@ -200,6 +201,11 @@ export default function SecondarySettingsComponent({ settings, inputForm }) {
label={t('SettingsDialog.EnableDebug')}
labelPlacement='start'
/>
+ }
+ label={t('SettingsDialog.ResponsiveMode')}
+ labelPlacement='start'
+ />
{t('SettingsDialog.RetrackersMode')}