Comparing version 4.0.0-rc.1 to 4.0.0-rc.2
@@ -8,3 +8,3 @@ 'use strict' | ||
} = require('./core/errors') | ||
const { kClients, kPending, kRunning, kSize, kConnected } = require('./core/symbols') | ||
const { kClients, kRunning } = require('./core/symbols') | ||
const Dispatcher = require('./dispatcher') | ||
@@ -74,27 +74,2 @@ const Pool = require('./pool') | ||
/* istanbul ignore next: only used for test */ | ||
get [kConnected] () { | ||
let ret = 0 | ||
for (const ref of this[kClients].values()) { | ||
const client = ref.deref() | ||
if (client) { | ||
ret += client[kConnected] | ||
} | ||
} | ||
return ret | ||
} | ||
/* istanbul ignore next: only used for test */ | ||
get [kPending] () { | ||
let ret = 0 | ||
for (const ref of this[kClients].values()) { | ||
const client = ref.deref() | ||
if (client) { | ||
ret += client[kPending] | ||
} | ||
} | ||
return ret | ||
} | ||
/* istanbul ignore next: only used for test */ | ||
get [kRunning] () { | ||
@@ -111,14 +86,2 @@ let ret = 0 | ||
/* istanbul ignore next: only used for test */ | ||
get [kSize] () { | ||
let ret = 0 | ||
for (const ref of this[kClients].values()) { | ||
const client = ref.deref() | ||
if (client) { | ||
ret += client[kSize] | ||
} | ||
} | ||
return ret | ||
} | ||
dispatch (opts, handler) { | ||
@@ -125,0 +88,0 @@ if (!handler || typeof handler !== 'object') { |
@@ -210,6 +210,5 @@ 'use strict' | ||
get [kConnected] () { | ||
return this[kSocket] && !this[kSocket][kConnecting] && !this[kSocket].destroyed ? 1 : 0 | ||
return !!this[kSocket] && !this[kSocket][kConnecting] && !this[kSocket].destroyed | ||
} | ||
/* istanbul ignore: only used for test */ | ||
get [kBusy] () { | ||
@@ -545,2 +544,8 @@ const socket = this[kSocket] | ||
finish () { | ||
currentParser = this | ||
llhttp.exports.llhttp_finish(this.ptr) | ||
currentParser = null | ||
} | ||
destroy () { | ||
@@ -799,5 +804,5 @@ assert(this.ptr != null) | ||
onMessageComplete () { | ||
const { client, socket, statusCode, upgrade, trailers, headers: rawTrailers } = this | ||
const { client, socket, statusCode, upgrade, trailers, headers: rawTrailers, shouldKeepAlive } = this | ||
if (socket.destroyed) { | ||
if (socket.destroyed && (!statusCode || shouldKeepAlive)) { | ||
return -1 | ||
@@ -907,2 +912,12 @@ } | ||
function onSocketError (err) { | ||
const { [kParser]: parser } = this | ||
// On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded | ||
// to the user. | ||
if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) { | ||
// We treat all incoming data so for as a valid response. | ||
parser.finish() | ||
return | ||
} | ||
const { [kClient]: client } = this | ||
@@ -939,2 +954,10 @@ | ||
function onSocketEnd () { | ||
const { [kParser]: parser } = this | ||
if (parser.statusCode && !parser.shouldKeepAlive) { | ||
// We treat all incoming data so for as a valid response. | ||
parser.finish() | ||
return | ||
} | ||
util.destroy(this, new SocketError('other side closed')) | ||
@@ -1007,3 +1030,3 @@ } | ||
port, | ||
servername: util.getServerName(client[kServerName]) | ||
servername: client[kServerName] | ||
}, onSocketConnect) | ||
@@ -1010,0 +1033,0 @@ |
@@ -31,3 +31,2 @@ 'use strict' | ||
/* istanbul ignore next: https://github.com/mcollina/undici/issues/267 */ | ||
socket = this.socketPath | ||
@@ -34,0 +33,0 @@ ? tls.connect(this.socketPath, opts) |
@@ -120,3 +120,3 @@ 'use strict' | ||
return body ? body.length : 0 | ||
return body ? body.byteLength : 0 | ||
} | ||
@@ -123,0 +123,0 @@ |
@@ -12,3 +12,3 @@ 'use strict' | ||
const util = require('./core/util') | ||
const { kSize, kConnected, kConnect, kRunning, kPending, kUrl, kBusy } = require('./core/symbols') | ||
const { kSize, kConnect, kRunning, kUrl, kPending, kBusy } = require('./core/symbols') | ||
const assert = require('assert') | ||
@@ -104,3 +104,2 @@ const makeConnect = require('./core/connect') | ||
/* istanbul ignore next: only used for test */ | ||
get [kBusy] () { | ||
@@ -110,7 +109,6 @@ return this[kNeedDrain] | ||
/* istanbul ignore next: only used for test */ | ||
get [kConnected] () { | ||
let ret = 0 | ||
for (const { [kConnected]: connected } of this[kClients]) { | ||
ret += connected | ||
get [kPending] () { | ||
let ret = this[kQueued] | ||
for (const { [kPending]: pending } of this[kClients]) { | ||
ret += pending | ||
} | ||
@@ -120,3 +118,2 @@ return ret | ||
/* istanbul ignore next: only used for test */ | ||
get [kRunning] () { | ||
@@ -130,12 +127,2 @@ let ret = 0 | ||
/* istanbul ignore next: only used for test */ | ||
get [kPending] () { | ||
let ret = this[kQueued] | ||
for (const { [kPending]: pending } of this[kClients]) { | ||
ret += pending | ||
} | ||
return ret | ||
} | ||
/* istanbul ignore: only used for test */ | ||
get [kSize] () { | ||
@@ -142,0 +129,0 @@ let ret = this[kQueued] |
{ | ||
"name": "undici", | ||
"version": "4.0.0-rc.1", | ||
"version": "4.0.0-rc.2", | ||
"description": "An HTTP/1.1 client, written from scratch for Node.js", | ||
@@ -5,0 +5,0 @@ "homepage": "https://undici.nodejs.org", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
411153
4719