Skip to content
This repository has been archived by the owner on Jul 6, 2018. It is now read-only.

Commit

Permalink
more perf updates
Browse files Browse the repository at this point in the history
  • Loading branch information
mcollina committed Dec 5, 2016
1 parent 3cdd529 commit a27fbc6
Showing 1 changed file with 26 additions and 21 deletions.
47 changes: 26 additions & 21 deletions lib/internal/http2.js
Original file line number Diff line number Diff line change
Expand Up @@ -1307,17 +1307,19 @@ function initializeTLSOptions(options) {
return options;
}

function onErrorSecureServerSession(err, conn) {
if (!this.emit('clientError', err, conn))
conn.destroy(err);
}

class Http2SecureServerSession extends TLSServer {
constructor(options, requestListener) {
super(initializeTLSOptions(options), connectionListener);
this[kOptions] = options;
this.timeout = kDefaultSocketTimeout;
if (typeof requestListener === 'function')
this.on('request', requestListener);
this.on('tlsClientError', (err, conn) => {
if (!this.emit('clientError', err, conn))
conn.destroy(err);
});
this.on('tlsClientError', onErrorSecureServerSession);
}

setTimeout(msecs, callback) {
Expand Down Expand Up @@ -1475,9 +1477,8 @@ class Http2ClientSession extends EventEmitter {
this[kSocket] = socket;

const session = this[kSession] = createClientSession(options, socket);
socket.once('error', (error) => {
console.log(error);
});
// TODO remove this
socket.once('error', console.log);
socket.on('resume', socketOnResume);
socket.on('pause', socketOnPause);
socket.on('drain', socketOnDrain);
Expand Down Expand Up @@ -1605,20 +1606,7 @@ class Http2ClientRequest extends Http2Outgoing {
const _handle = this.stream.session.request(mapToHeaders(this[kHeaders]), true);
if (_handle instanceof http2.Http2Stream) {
this[kId] = _handle.getId();
this.stream.once('handle', () => {
if (this[kTrailers] instanceof Map) {
for (const v of this[kTrailers]) {
const key = String(v[0]);
const value = v[1];
if (Array.isArray(value) && value.length > 0) {
for (const item of value)
this.stream.addTrailer(key, String(item));
} else {
this.stream.addTrailer(key, String(value));
}
}
}
});
this.stream.once('handle', kBeginSendHandle(this))
this.stream._handle = _handle;
}
}
Expand All @@ -1629,6 +1617,23 @@ class Http2ClientRequest extends Http2Outgoing {
}
}

function kBeginSendHandle(that) {
return function() {
if (that[kTrailers] instanceof Map) {
for (const v of that[kTrailers]) {
const key = String(v[0]);
const value = v[1];
if (Array.isArray(value) && value.length > 0) {
for (const item of value)
that.stream.addTrailer(key, String(item));
} else {
that.stream.addTrailer(key, String(value));
}
}
}
}
}

class Http2ClientResponse extends Http2Incoming {
constructor(stream, headers, options) {
super(stream, headers, options);
Expand Down

0 comments on commit a27fbc6

Please sign in to comment.