diff --git a/services/web/app/coffee/Features/Compile/CompileController.coffee b/services/web/app/coffee/Features/Compile/CompileController.coffee index 054c6f5aaf..663210b092 100755 --- a/services/web/app/coffee/Features/Compile/CompileController.coffee +++ b/services/web/app/coffee/Features/Compile/CompileController.coffee @@ -78,7 +78,12 @@ module.exports = CompileController = url = "#{compilerUrl}#{url}" logger.log url: url, "proxying to CLSI" oneMinute = 60 * 1000 - proxy = request(url: url, method: req.method, timeout: oneMinute) + # pass through If-* and Range headers for byte serving pdfs + # do not send any others, potential proxying loop if Host: is passed! + newHeaders = {} + for h, v of req.headers + newHeaders[h] = req.headers[h] if h.match /^(If-|Range)/i + proxy = request(url: url, method: req.method, timeout: oneMinute, headers: newHeaders) proxy.pipe(res) proxy.on "error", (error) -> logger.warn err: error, url: url, "CLSI proxy error"