diff options
author | bob <bcz@cs.brown.edu> | 2019-07-30 09:41:08 -0400 |
---|---|---|
committer | bob <bcz@cs.brown.edu> | 2019-07-30 09:41:08 -0400 |
commit | fe2ae4e235a12198a530672d4db3fdcd167c6e65 (patch) | |
tree | f44fbc2b53eba3eadc51b851600b706c0e451d5a /src/server/index.ts | |
parent | 5591060e868053c8839fcc1de1ae77d4dac361ac (diff) | |
parent | e041988b84553797699a5a232e26e72252460e01 (diff) |
Merge branch 'master' into youtube-api-muhammed
Diffstat (limited to 'src/server/index.ts')
-rw-r--r-- | src/server/index.ts | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/server/index.ts b/src/server/index.ts index cf117b938..080b50ada 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -142,6 +142,16 @@ app.get("/pull", (req, res) => res.redirect("/"); })); +app.get("/version", (req, res) => { + exec('"C:\\Program Files\\Git\\bin\\git.exe" rev-parse HEAD', (err, stdout, stderr) => { + if (err) { + res.send(err.message); + return; + } + res.send(stdout); + }); +}); + // SEARCH // GETTERS @@ -430,8 +440,22 @@ app.post(RouteStore.forgot, postForgot); app.get(RouteStore.reset, getReset); app.post(RouteStore.reset, postReset); -app.use(RouteStore.corsProxy, (req, res) => - req.pipe(request(decodeURIComponent(req.url.substring(1)))).pipe(res)); +const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; +app.use(RouteStore.corsProxy, (req, res) => { + req.pipe(request(decodeURIComponent(req.url.substring(1)))).on("response", res => { + const headers = Object.keys(res.headers); + headers.forEach(headerName => { + const header = res.headers[headerName]; + if (Array.isArray(header)) { + res.headers[headerName] = header.filter(h => !headerCharRegex.test(h)); + } else if (header) { + if (headerCharRegex.test(header as any)) { + delete res.headers[headerName]; + } + } + }); + }).pipe(res); +}); app.get(RouteStore.delete, (req, res) => { if (release) { |