pac-proxy-agent
Advanced tools
Comparing version 0.0.2 to 0.1.0
0.1.0 / 2014-01-25 | ||
================== | ||
* index: calculate an SHA1 hash of the JS code | ||
* index: pass the `sandbox` option in to PacResolver | ||
* index: remove final remnants of the `code` property | ||
* index: set the `filename` option when creating the resolver function | ||
* package: update to "pac-resolver" v1.1.0 | ||
0.0.2 / 2014-01-25 | ||
@@ -3,0 +12,0 @@ ================== |
41
index.js
@@ -8,2 +8,3 @@ | ||
var tls = require('tls'); | ||
var crypto = require('crypto'); | ||
var parse = require('url').parse; | ||
@@ -48,5 +49,2 @@ var format = require('url').format; | ||
* | ||
* Or you can pass the PAC file JS code directly as a `code` param in the options | ||
* object. | ||
* | ||
* @api public | ||
@@ -76,11 +74,5 @@ */ | ||
this.sandbox = opts.sandox; | ||
this.cache = this._resolver = null; | ||
/* | ||
if (opts.code) { | ||
// the JS code was passed directly in | ||
protocol = 'code'; | ||
this.code = opts.code; | ||
} | ||
*/ | ||
} | ||
@@ -101,6 +93,6 @@ inherits(PacProxyAgent, Agent); | ||
// kick things off by attempting to (re)load the contents of the PAC file URI | ||
this.loadPacFile(onPacFile); | ||
this.loadPacFile(onpacfile); | ||
// loadPacFile() callback function | ||
function onPacFile (err, code) { | ||
function onpacfile (err, code) { | ||
if (err) { | ||
@@ -116,5 +108,22 @@ if ('ENOTMODIFIED' == err.code) { | ||
// create a sha1 hash of the JS code | ||
var hash = crypto.createHash('sha1').update(code).digest('hex'); | ||
if (self._resolver && self._resolver.hash == hash) { | ||
debug('same sha1 hash for code - contents have not changed, reusing previous proxy resolver'); | ||
fn(null, self._resolver); | ||
return; | ||
} | ||
// cache the resolver | ||
debug('creating new proxy resolver instance'); | ||
self._resolver = new PacResolver(code); | ||
self._resolver = new PacResolver(code, { | ||
filename: self.uri, | ||
sandbox: self.sandbox | ||
}); | ||
// store that sha1 hash on the resolver instance | ||
// for future comparison purposes | ||
self._resolver.hash = hash; | ||
fn(null, self._resolver); | ||
@@ -209,2 +218,6 @@ } | ||
if (err) return fn(err); | ||
// default to "DIRECT" if a falsey value was returned (or nothing) | ||
if (!proxy) proxy = 'DIRECT'; | ||
var proxies = proxy.split(/;\s*?\b/); | ||
@@ -211,0 +224,0 @@ |
{ | ||
"name": "pac-proxy-agent", | ||
"version": "0.0.2", | ||
"version": "0.1.0", | ||
"description": "A PAC file proxy `http.Agent` implementation for HTTP", | ||
@@ -32,3 +32,3 @@ "main": "index.js", | ||
"extend": "~1.2.1", | ||
"pac-resolver": "~0.0.2", | ||
"pac-resolver": "~1.1.0", | ||
"proxy-agent": "1", | ||
@@ -35,0 +35,0 @@ "get-uri": "~0.1.0", |
@@ -12,2 +12,3 @@ pac-proxy-agent | ||
Installation | ||
@@ -14,0 +15,0 @@ ------------ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
11903
225
76
+ Addedpac-resolver@1.1.0(transitive)
- Removedpac-resolver@0.0.2(transitive)
Updatedpac-resolver@~1.1.0