You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
887 B
43 lines
887 B
1 month ago
|
/**
|
||
|
* Https Agent base on custom http agent
|
||
|
*/
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
const https = require('https');
|
||
|
const HttpAgent = require('./agent');
|
||
|
const OriginalHttpsAgent = https.Agent;
|
||
|
|
||
|
class HttpsAgent extends HttpAgent {
|
||
|
constructor(options) {
|
||
|
super(options);
|
||
|
|
||
|
this.defaultPort = 443;
|
||
|
this.protocol = 'https:';
|
||
|
this.maxCachedSessions = this.options.maxCachedSessions;
|
||
|
if (this.maxCachedSessions === undefined) {
|
||
|
this.maxCachedSessions = 100;
|
||
|
}
|
||
|
|
||
|
this._sessionCache = {
|
||
|
map: {},
|
||
|
list: [],
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[
|
||
|
'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;
|