Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

http: replace superfluous property with getter/setter #29015

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions doc/api/deprecations.md
Original file line number Diff line number Diff line change
Expand Up @@ -2500,6 +2500,20 @@ Type: Runtime
Passing a callback to [`worker.terminate()`][] is deprecated. Use the returned
`Promise` instead, or a listener to the worker’s `'exit'` event.

<a id="DEP0XXX"></a>
### DEP0XXX: http connection
<!-- YAML
changes:
- version: REPLACEME
pr-url: https://github.com/nodejs/node/pull/29015
description: Documentation-only deprecation.
-->

Type: Documentation-only

Prefer [`response.socket`][] over [`response.connection`] and
[`request.socket`][] over [`request.connection`].

[`--http-parser=legacy`]: cli.html#cli_http_parser_library
[`--pending-deprecation`]: cli.html#cli_pending_deprecation
[`--throw-deprecation`]: cli.html#cli_throw_deprecation
Expand Down Expand Up @@ -2555,6 +2569,10 @@ Passing a callback to [`worker.terminate()`][] is deprecated. Use the returned
[`process.env`]: process.html#process_process_env
[`punycode`]: punycode.html
[`require.extensions`]: modules.html#modules_require_extensions
[`request.socket`]: http.html#http_request_socket
[`request.connection`]: http.html#http_request_connection
[`response.socket`]: http.html#http_response_socket
[`response.connection`]: http.html#http_response_connection
[`script.createCachedData()`]: vm.html#vm_script_createcacheddata
[`setInterval()`]: timers.html#timers_setinterval_callback_delay_args
[`setTimeout()`]: timers.html#timers_settimeout_callback_delay_args
Expand Down
6 changes: 6 additions & 0 deletions doc/api/http.md
Original file line number Diff line number Diff line change
Expand Up @@ -568,8 +568,11 @@ been aborted.
### request.connection
<!-- YAML
added: v0.3.0
deprecated: REPLACEME
-->

> Stability: 0 - Deprecated. Use [`request.socket`][].

* {net.Socket}

See [`request.socket`][].
Expand Down Expand Up @@ -1145,10 +1148,13 @@ will result in a [`TypeError`][] being thrown.
### response.connection
<!-- YAML
added: v0.3.0
deprecated: REPLACEME
-->

* {net.Socket}

> Stability: 0 - Deprecated. Use [`response.socket`][].

See [`response.socket`][].

### response.end([data][, encoding][, callback])
Expand Down
16 changes: 16 additions & 0 deletions doc/api/http2.md
Original file line number Diff line number Diff line change
Expand Up @@ -2702,6 +2702,18 @@ added: v8.4.0
The request authority pseudo header field. It can also be accessed via
`req.headers[':authority']`.

#### request.connection
<!-- YAML
added: v8.4.0
deprecated: REPLACEME
-->

> Stability: 0 - Deprecated. Use [`request.socket`][].

* {net.Socket|tls.TLSSocket}

See [`request.socket`][].

#### request.destroy([error])
<!-- YAML
added: v8.4.0
Expand Down Expand Up @@ -2995,8 +3007,11 @@ will result in a [`TypeError`][] being thrown.
#### response.connection
<!-- YAML
added: v8.4.0
deprecated: REPLACEME
-->

> Stability: 0 - Deprecated. Use [`response.socket`][].

* {net.Socket|tls.TLSSocket}

See [`response.socket`][].
Expand Down Expand Up @@ -3497,6 +3512,7 @@ following additional properties:
[`net.Socket.prototype.unref()`]: net.html#net_socket_unref
[`net.Socket`]: net.html#net_class_net_socket
[`net.connect()`]: net.html#net_net_connect
[`request.socket`]: #http2_request_socket
[`request.socket.getPeerCertificate()`]: tls.html#tls_tlssocket_getpeercertificate_detailed
[`response.end()`]: #http2_response_end_data_encoding_callback
[`response.setHeader()`]: #http2_response_setheader_name_value
Expand Down
3 changes: 1 addition & 2 deletions lib/_http_client.js
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ Object.setPrototypeOf(ClientRequest.prototype, OutgoingMessage.prototype);
Object.setPrototypeOf(ClientRequest, OutgoingMessage);

ClientRequest.prototype._finish = function _finish() {
DTRACE_HTTP_CLIENT_REQUEST(this, this.connection);
DTRACE_HTTP_CLIENT_REQUEST(this, this.socket);
OutgoingMessage.prototype._finish.call(this);
};

Expand Down Expand Up @@ -643,7 +643,6 @@ function emitFreeNT(socket) {
function tickOnSocket(req, socket) {
const parser = parsers.alloc();
req.socket = socket;
req.connection = socket;
parser.initialize(HTTPParser.RESPONSE,
new HTTPClientAsyncResource('HTTPINCOMINGMESSAGE', req));
parser.socket = socket;
Expand Down
10 changes: 9 additions & 1 deletion lib/_http_incoming.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ function IncomingMessage(socket) {
this._readableState.readingMore = true;

this.socket = socket;
this.connection = socket;

this.httpVersionMajor = null;
this.httpVersionMinor = null;
Expand Down Expand Up @@ -76,6 +75,15 @@ function IncomingMessage(socket) {
Object.setPrototypeOf(IncomingMessage.prototype, Stream.Readable.prototype);
Object.setPrototypeOf(IncomingMessage, Stream.Readable);

Object.defineProperty(IncomingMessage.prototype, 'connection', {
get: function() {
return this.socket;
},
set: function(val) {
this.socket = val;
}
});

IncomingMessage.prototype.setTimeout = function setTimeout(msecs, callback) {
if (callback)
this.on('timeout', callback);
Expand Down
30 changes: 19 additions & 11 deletions lib/_http_outgoing.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ function OutgoingMessage() {
this[kIsCorked] = false;

this.socket = null;
this.connection = null;
this._header = null;
this[outHeadersKey] = null;

Expand Down Expand Up @@ -137,6 +136,15 @@ Object.defineProperty(OutgoingMessage.prototype, '_headers', {
}, 'OutgoingMessage.prototype._headers is deprecated', 'DEP0066')
});

Object.defineProperty(OutgoingMessage.prototype, 'connection', {
get: function() {
return this.socket;
},
set: function(val) {
this.socket = val;
}
});

Object.defineProperty(OutgoingMessage.prototype, '_headerNames', {
get: internalUtil.deprecate(function() {
const headers = this[outHeadersKey];
Expand Down Expand Up @@ -253,7 +261,7 @@ OutgoingMessage.prototype._send = function _send(data, encoding, callback) {

OutgoingMessage.prototype._writeRaw = _writeRaw;
function _writeRaw(data, encoding, callback) {
const conn = this.connection;
const conn = this.socket;
if (conn && conn.destroyed) {
// The socket was destroyed. If we're still trying to write to it,
// then we haven't gotten the 'close' event yet.
Expand Down Expand Up @@ -591,10 +599,10 @@ function write_(msg, chunk, encoding, callback, fromEnd) {
['string', 'Buffer'], chunk);
}

if (!fromEnd && msg.connection && !msg[kIsCorked]) {
msg.connection.cork();
if (!fromEnd && msg.socket && !msg[kIsCorked]) {
msg.socket.cork();
msg[kIsCorked] = true;
process.nextTick(connectionCorkNT, msg, msg.connection);
process.nextTick(connectionCorkNT, msg, msg.socket);
}

var len, ret;
Expand Down Expand Up @@ -682,8 +690,8 @@ OutgoingMessage.prototype.end = function end(chunk, encoding, callback) {
else
this._contentLength = chunk.length;
}
if (this.connection) {
this.connection.cork();
if (this.socket) {
this.socket.cork();
uncork = true;
}
write_(this, chunk, encoding, null, true);
Expand All @@ -705,16 +713,16 @@ OutgoingMessage.prototype.end = function end(chunk, encoding, callback) {
}

if (uncork)
this.connection.uncork();
this.socket.uncork();

this.finished = true;

// There is the first message on the outgoing queue, and we've sent
// everything to the socket.
debug('outgoing message end.');
if (this.outputData.length === 0 &&
this.connection &&
this.connection._httpMessage === this) {
this.socket &&
this.socket._httpMessage === this) {
this._finish();
}

Expand All @@ -723,7 +731,7 @@ OutgoingMessage.prototype.end = function end(chunk, encoding, callback) {


OutgoingMessage.prototype._finish = function _finish() {
assert(this.connection);
assert(this.socket);
this.emit('prefinish');
};

Expand Down
5 changes: 2 additions & 3 deletions lib/_http_server.js
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ Object.setPrototypeOf(ServerResponse.prototype, OutgoingMessage.prototype);
Object.setPrototypeOf(ServerResponse, OutgoingMessage);

ServerResponse.prototype._finish = function _finish() {
DTRACE_HTTP_SERVER_RESPONSE(this.connection);
DTRACE_HTTP_SERVER_RESPONSE(this.socket);
if (this[kServerResponseStatistics] !== undefined) {
emitStatistics(this[kServerResponseStatistics]);
}
Expand Down Expand Up @@ -205,7 +205,6 @@ ServerResponse.prototype.assignSocket = function assignSocket(socket) {
socket._httpMessage = this;
socket.on('close', onServerResponseClose);
this.socket = socket;
this.connection = socket;
this.emit('socket', socket);
this._flush();
};
Expand All @@ -214,7 +213,7 @@ ServerResponse.prototype.detachSocket = function detachSocket(socket) {
assert(socket._httpMessage === this);
socket.removeListener('close', onServerResponseClose);
socket._httpMessage = null;
this.socket = this.connection = null;
this.socket = null;
};

ServerResponse.prototype.writeContinue = function writeContinue(cb) {
Expand Down