Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
akupiec
GitHub Repository: akupiec/mad-proxy
Path: blob/master/src/middlewares/utils/utils.js
115 views
1
const zlib = require('zlib');
2
const mime = require('mime-types');
3
const glob = require('glob');
4
const LOGGER = require('../../config/logger');
5
6
function encodeBuffer(res, buffer) {
7
const encoding = res.getHeader('content-encoding');
8
if(encoding && encoding.toLowerCase() === 'gzip') {
9
return zlib.gunzipSync(buffer); //gzip checker needed
10
}
11
return buffer;
12
}
13
14
function getExtension(res) {
15
const contentType = res.getHeader('content-type');
16
// const charset = mime.charset(contentType);
17
return '.' + mime.extension(contentType);
18
}
19
20
const cacheFileResolve = (filePath) => {
21
const evilFilePath = filePath.replace(/#.*/, '#666');
22
let possibleTable = glob.sync(evilFilePath + '.*');
23
if (possibleTable.length) {
24
LOGGER.warn('Evil file found! Ignoring request for: ', filePath);
25
return possibleTable[0];
26
}
27
28
possibleTable = glob.sync(filePath + '.*');
29
return possibleTable.length ? possibleTable[0] : undefined;
30
};
31
32
module.exports.getExtension = getExtension;
33
module.exports.encodeBuffer = encodeBuffer;
34
module.exports.cacheFileResolve = cacheFileResolve;
35
36