From b53ac5cee05a95e951f61b63aa3982c443148fc4 Mon Sep 17 00:00:00 2001 From: davidmarkclements Date: Wed, 4 Apr 2018 19:59:00 +0200 Subject: [PATCH 1/3] errors: alter ERR_HTTP2_INVALID_CONNECTION_HEADERS changes the base instance for ERR_HTTP2_INVALID_CONNECTION_HEADERS from Error to TypeError as a more accurate representation of the error. --- lib/internal/errors.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/internal/errors.js b/lib/internal/errors.js index f8073d15fe8d49..1087ff71f710bd 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -712,9 +712,8 @@ E('ERR_HTTP2_HEADER_SINGLE_VALUE', E('ERR_HTTP2_INFO_STATUS_NOT_ALLOWED', 'Informational status codes cannot be used', RangeError); -// This should probably be a `TypeError`. E('ERR_HTTP2_INVALID_CONNECTION_HEADERS', - 'HTTP/1 Connection specific headers are forbidden: "%s"', Error); + 'HTTP/1 Connection specific headers are forbidden: "%s"', TypeError); E('ERR_HTTP2_INVALID_HEADER_VALUE', 'Invalid value "%s" for header "%s"', TypeError); E('ERR_HTTP2_INVALID_INFO_STATUS', From a6b9fb498a3c122bd0d178a07105c6787d8c5e54 Mon Sep 17 00:00:00 2001 From: David Mark Clements Date: Wed, 4 Apr 2018 20:23:04 +0200 Subject: [PATCH 2/3] fixup: address comment --- lib/internal/errors.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/internal/errors.js b/lib/internal/errors.js index 1087ff71f710bd..10aebe343356ab 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -711,7 +711,6 @@ E('ERR_HTTP2_HEADER_SINGLE_VALUE', 'Header field "%s" must have only a single value', Error); E('ERR_HTTP2_INFO_STATUS_NOT_ALLOWED', 'Informational status codes cannot be used', RangeError); - E('ERR_HTTP2_INVALID_CONNECTION_HEADERS', 'HTTP/1 Connection specific headers are forbidden: "%s"', TypeError); E('ERR_HTTP2_INVALID_HEADER_VALUE', From 4fc3cbbf868cb99a8d258ff85398997a771fe3fe Mon Sep 17 00:00:00 2001 From: davidmarkclements Date: Wed, 11 Apr 2018 22:56:02 +0200 Subject: [PATCH 3/3] add TypeError checks to unit tests --- test/parallel/test-http2-server-push-stream-errors-args.js | 1 + test/parallel/test-http2-util-headers-list.js | 3 +++ 2 files changed, 4 insertions(+) diff --git a/test/parallel/test-http2-server-push-stream-errors-args.js b/test/parallel/test-http2-server-push-stream-errors-args.js index f752f44310c0df..24f7c9fcef9342 100644 --- a/test/parallel/test-http2-server-push-stream-errors-args.js +++ b/test/parallel/test-http2-server-push-stream-errors-args.js @@ -31,6 +31,7 @@ server.on('stream', common.mustCall((stream, headers) => { () => stream.pushStream({ 'connection': 'test' }, {}, () => {}), { code: 'ERR_HTTP2_INVALID_CONNECTION_HEADERS', + name: 'TypeError [ERR_HTTP2_INVALID_CONNECTION_HEADERS]', message: 'HTTP/1 Connection specific headers are forbidden: "connection"' } ); diff --git a/test/parallel/test-http2-util-headers-list.js b/test/parallel/test-http2-util-headers-list.js index 0ff6b558d9a51b..126b36c8854c3f 100644 --- a/test/parallel/test-http2-util-headers-list.js +++ b/test/parallel/test-http2-util-headers-list.js @@ -283,6 +283,7 @@ const { ].forEach((name) => { common.expectsError({ code: 'ERR_HTTP2_INVALID_CONNECTION_HEADERS', + name: 'TypeError [ERR_HTTP2_INVALID_CONNECTION_HEADERS]', message: 'HTTP/1 Connection specific headers are forbidden: ' + `"${name.toLowerCase()}"` })(mapToHeaders({ [name]: 'abc' })); @@ -290,12 +291,14 @@ const { common.expectsError({ code: 'ERR_HTTP2_INVALID_CONNECTION_HEADERS', + name: 'TypeError [ERR_HTTP2_INVALID_CONNECTION_HEADERS]', message: 'HTTP/1 Connection specific headers are forbidden: ' + `"${HTTP2_HEADER_TE}"` })(mapToHeaders({ [HTTP2_HEADER_TE]: ['abc'] })); common.expectsError({ code: 'ERR_HTTP2_INVALID_CONNECTION_HEADERS', + name: 'TypeError [ERR_HTTP2_INVALID_CONNECTION_HEADERS]', message: 'HTTP/1 Connection specific headers are forbidden: ' + `"${HTTP2_HEADER_TE}"` })(mapToHeaders({ [HTTP2_HEADER_TE]: ['abc', 'trailers'] }));