Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/webtorrent/webtorrent.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFeross Aboukhadijeh <feross@feross.org>2016-09-18 07:28:58 +0300
committerDC <dcposch@dcpos.ch>2016-09-18 07:28:58 +0300
commit2c8678c96186152cc2c9ba66d0bf1613826c3b65 (patch)
treeda81148fd889b412ad77acce970a63ca60e661b4 /lib/server.js
parent027803df8b513cab190d4c377953169add8846fd (diff)
server: Handle invalid range handers instead of throwing (#921)
Fixes: #920
Diffstat (limited to 'lib/server.js')
-rw-r--r--lib/server.js13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/server.js b/lib/server.js
index 4f1cbbd..a812eab 100644
--- a/lib/server.js
+++ b/lib/server.js
@@ -112,11 +112,15 @@ function Server (torrent, opts) {
'DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000'
)
- var range
- if (req.headers.range) {
+ // `rangeParser` returns an array of ranges, or an error code (number) if
+ // there was an error parsing the range.
+ var range = rangeParser(file.length, req.headers.range || '')
+
+ if (Array.isArray(range)) {
+ // no support for multi-range request, just use the first range
+ range = range[0]
+
res.statusCode = 206
- // no support for multi-range reqs
- range = rangeParser(file.length, req.headers.range)[0]
debug('range %s', JSON.stringify(range))
res.setHeader(
'Content-Range',
@@ -124,6 +128,7 @@ function Server (torrent, opts) {
)
res.setHeader('Content-Length', range.end - range.start + 1)
} else {
+ range = null
res.setHeader('Content-Length', file.length)
}