diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/agentkeepalive/lib/https_agent.js | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/agentkeepalive/lib/https_agent.js')
| -rw-r--r-- | node_modules/agentkeepalive/lib/https_agent.js | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/node_modules/agentkeepalive/lib/https_agent.js b/node_modules/agentkeepalive/lib/https_agent.js new file mode 100644 index 00000000..36b32d66 --- /dev/null +++ b/node_modules/agentkeepalive/lib/https_agent.js @@ -0,0 +1,95 @@ +/** + * Https Agent base on custom http agent + * + * Copyright(c) node-modules and other contributors. + * MIT Licensed + * + * Authors: + * fengmk2 <m@fengmk2.com> (http://fengmk2.com) + */ + +'use strict'; + +/** + * Module dependencies. + */ + +var https = require('https'); +var utils = require('./utils'); +var HttpAgent = require('./agent'); +var OriginalHttpsAgent = https.Agent; + +var HttpsAgent; + +if (utils.isNode10) { + // node v0.10 + HttpsAgent = function HttpsAgent(options) { + HttpAgent.call(this, options); + this.defaultPort = 443; + this.protocol = 'https:'; + }; + + utils.inherits(HttpsAgent, HttpAgent); + + HttpsAgent.prototype.createConnection = https.globalAgent.createConnection; + HttpsAgent.prototype.getName = function(options) { + var name = HttpAgent.prototype.getName.call(this, options); + + name += ':'; + if (options.ca) + name += options.ca; + + name += ':'; + if (options.cert) + name += options.cert; + + name += ':'; + if (options.ciphers) + name += options.ciphers; + + name += ':'; + if (options.key) + name += options.key; + + name += ':'; + if (options.pfx) + name += options.pfx; + + name += ':'; + if (options.rejectUnauthorized !== undefined) + name += options.rejectUnauthorized; + + return name; + }; +} else { + HttpsAgent = function HttpsAgent(options) { + HttpAgent.call(this, options); + this.defaultPort = 443; + this.protocol = 'https:'; + this.maxCachedSessions = this.options.maxCachedSessions; + if (this.maxCachedSessions === undefined) + this.maxCachedSessions = 100; + + this._sessionCache = { + map: {}, + list: [] + }; + }; + + utils.inherits(HttpsAgent, HttpAgent); + + [ + 'createConnection', + 'getName', + '_getSession', + '_cacheSession', + // https://github.com/nodejs/node/pull/4982 + '_evictSession', + ].forEach(function(method) { + if (typeof OriginalHttpsAgent.prototype[method] === 'function') { + HttpsAgent.prototype[method] = OriginalHttpsAgent.prototype[method]; + } + }); +} + +module.exports = HttpsAgent; |
