diff options
author | Bryan English <bryan@bryanenglish.com> | 2017-10-22 17:23:43 -0700 |
---|---|---|
committer | Bryan English <bryan@bryanenglish.com> | 2017-10-26 15:47:29 -0700 |
commit | 5118f3146643dc55e7e7bd3082d1de4d0e7d5426 (patch) | |
tree | 6637a4534b0f22690485fd36fb56c0c7a9e6c633 /lib/https.js | |
parent | 9ab648120c7b226976ba2dfc6a89fda06e09addb (diff) | |
download | node-new-5118f3146643dc55e7e7bd3082d1de4d0e7d5426.tar.gz |
https: refactor to use http internals
Rather than using `http`, use `_http_client`, etc. directly.
Also moving all the exports to the bottom, in line with most of the rest
of the codebase.
PR-URL: https://github.com/nodejs/node/pull/16395
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'lib/https.js')
-rw-r--r-- | lib/https.js | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/lib/https.js b/lib/https.js index 86b13d78e5..f6e5a533b9 100644 --- a/lib/https.js +++ b/lib/https.js @@ -25,8 +25,13 @@ require('internal/util').assertCrypto(); const tls = require('tls'); const url = require('url'); -const http = require('http'); const util = require('util'); +const { Agent: HttpAgent } = require('_http_agent'); +const { + Server: HttpServer, + _connectionListener +} = require('_http_server'); +const { ClientRequest } = require('_http_client'); const { inherits } = util; const debug = util.debuglog('https'); const { urlToOptions, searchParamsSymbol } = require('internal/url'); @@ -52,7 +57,7 @@ function Server(opts, requestListener) { opts.ALPNProtocols = ['http/1.1']; } - tls.Server.call(this, opts, http._connectionListener); + tls.Server.call(this, opts, _connectionListener); this.httpAllowHalfOpen = false; @@ -69,13 +74,12 @@ function Server(opts, requestListener) { this.keepAliveTimeout = 5000; } inherits(Server, tls.Server); -exports.Server = Server; -Server.prototype.setTimeout = http.Server.prototype.setTimeout; +Server.prototype.setTimeout = HttpServer.prototype.setTimeout; -exports.createServer = function createServer(opts, requestListener) { +function createServer(opts, requestListener) { return new Server(opts, requestListener); -}; +} // HTTPS agents. @@ -130,7 +134,7 @@ function Agent(options) { if (!(this instanceof Agent)) return new Agent(options); - http.Agent.call(this, options); + HttpAgent.call(this, options); this.defaultPort = 443; this.protocol = 'https:'; this.maxCachedSessions = this.options.maxCachedSessions; @@ -142,11 +146,11 @@ function Agent(options) { list: [] }; } -inherits(Agent, http.Agent); +inherits(Agent, HttpAgent); Agent.prototype.createConnection = createConnection; Agent.prototype.getName = function getName(options) { - var name = http.Agent.prototype.getName.call(this, options); + var name = HttpAgent.prototype.getName.call(this, options); name += ':'; if (options.ca) @@ -220,10 +224,7 @@ Agent.prototype._evictSession = function _evictSession(key) { const globalAgent = new Agent(); -exports.globalAgent = globalAgent; -exports.Agent = Agent; - -exports.request = function request(options, cb) { +function request(options, cb) { if (typeof options === 'string') { options = url.parse(options); if (!options.hostname) { @@ -237,11 +238,20 @@ exports.request = function request(options, cb) { options = util._extend({}, options); } options._defaultAgent = globalAgent; - return http.request(options, cb); -}; + return new ClientRequest(options, cb); +} -exports.get = function get(options, cb) { - var req = exports.request(options, cb); +function get(options, cb) { + const req = request(options, cb); req.end(); return req; +} + +module.exports = { + Agent, + globalAgent, + Server, + createServer, + get, + request }; |