MCPcopy
hub / github.com/di-sukharev/opencommit / onHeadersComplete

Method onHeadersComplete

out/cli.cjs:54339–54416  ·  view source on GitHub ↗
(statusCode, upgrade, shouldKeepAlive)

Source from the content-addressed store, hash-verified

54337 client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade"));
54338 try {
54339 request3.onUpgrade(statusCode, headers, socket);
54340 } catch (err) {
54341 util4.destroy(socket, err);
54342 }
54343 resume2(client);
54344 }
54345 onHeadersComplete(statusCode, upgrade, shouldKeepAlive) {
54346 const { client, socket, headers, statusText } = this;
54347 if (socket.destroyed) {
54348 return -1;
54349 }
54350 const request3 = client[kQueue][client[kRunningIdx]];
54351 if (!request3) {
54352 return -1;
54353 }
54354 assert2(!this.upgrade);
54355 assert2(this.statusCode < 200);
54356 if (statusCode === 100) {
54357 util4.destroy(socket, new SocketError("bad response", util4.getSocketInfo(socket)));
54358 return -1;
54359 }
54360 if (upgrade && !request3.upgrade) {
54361 util4.destroy(socket, new SocketError("bad upgrade", util4.getSocketInfo(socket)));
54362 return -1;
54363 }
54364 assert2.strictEqual(this.timeoutType, TIMEOUT_HEADERS);
54365 this.statusCode = statusCode;
54366 this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD.
54367 request3.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive";
54368 if (this.statusCode >= 200) {
54369 const bodyTimeout = request3.bodyTimeout != null ? request3.bodyTimeout : client[kBodyTimeout];
54370 this.setTimeout(bodyTimeout, TIMEOUT_BODY);
54371 } else if (this.timeout) {
54372 if (this.timeout.refresh) {
54373 this.timeout.refresh();
54374 }
54375 }
54376 if (request3.method === "CONNECT") {
54377 assert2(client[kRunning] === 1);
54378 this.upgrade = true;
54379 return 2;
54380 }
54381 if (upgrade) {
54382 assert2(client[kRunning] === 1);
54383 this.upgrade = true;
54384 return 2;
54385 }
54386 assert2(this.headers.length % 2 === 0);
54387 this.headers = [];
54388 this.headersSize = 0;
54389 if (this.shouldKeepAlive && client[kPipelining]) {
54390 const keepAliveTimeout = this.keepAlive ? util4.parseKeepAliveTimeout(this.keepAlive) : null;
54391 if (keepAliveTimeout != null) {
54392 const timeout = Math.min(
54393 keepAliveTimeout - client[kKeepAliveTimeoutThreshold],
54394 client[kKeepAliveMaxTimeout]
54395 );
54396 if (timeout <= 0) {

Callers 1

lazyllhttpFunction · 0.80

Calls 7

resume2Function · 0.85
toLowerCaseMethod · 0.80
setTimeoutMethod · 0.80
refreshMethod · 0.80
destroyMethod · 0.45
minMethod · 0.45
onHeadersMethod · 0.45

Tested by

no test coverage detected