![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/vreg/node_modules/clean-css/lib/reader/ |
var http = require('http'); var https = require('https'); var url = require('url'); var isHttpResource = require('../utils/is-http-resource'); var isHttpsResource = require('../utils/is-https-resource'); var override = require('../utils/override'); var HTTP_PROTOCOL = 'http:'; function loadRemoteResource(uri, inlineRequest, inlineTimeout, callback) { var proxyProtocol = inlineRequest.protocol || inlineRequest.hostname; var errorHandled = false; var requestOptions; var fetch; requestOptions = override( url.parse(uri), inlineRequest || {} ); if (inlineRequest.hostname !== undefined) { // overwrite as we always expect a http proxy currently requestOptions.protocol = inlineRequest.protocol || HTTP_PROTOCOL; requestOptions.path = requestOptions.href; } fetch = (proxyProtocol && !isHttpsResource(proxyProtocol)) || isHttpResource(uri) ? http.get : https.get; fetch(requestOptions, function (res) { var chunks = []; var movedUri; if (errorHandled) { return; } if (res.statusCode < 200 || res.statusCode > 399) { return callback(res.statusCode, null); } else if (res.statusCode > 299) { movedUri = url.resolve(uri, res.headers.location); return loadRemoteResource(movedUri, inlineRequest, inlineTimeout, callback); } res.on('data', function (chunk) { chunks.push(chunk.toString()); }); res.on('end', function () { var body = chunks.join(''); callback(null, body); }); }) .on('error', function (res) { if (errorHandled) { return; } errorHandled = true; callback(res.message, null); }) .on('timeout', function () { if (errorHandled) { return; } errorHandled = true; callback('timeout', null); }) .setTimeout(inlineTimeout); } module.exports = loadRemoteResource;