| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /**
- * 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;
|