Skip to content

Commit

Permalink
http2: set origin name correctly when servername is empty
Browse files Browse the repository at this point in the history
  • Loading branch information
Narasimha1997 committed Aug 30, 2021
1 parent 449147e commit c43b614
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/internal/http2/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -3098,7 +3098,7 @@ function initializeTLSOptions(options, servername) {
options.ALPNProtocols = ['h2'];
if (options.allowHTTP1 === true)
ArrayPrototypePush(options.ALPNProtocols, 'http/1.1');
if (servername !== undefined && options.servername === undefined)
if (servername !== undefined && !options.servername)
options.servername = servername;
return options;
}
Expand Down
42 changes: 42 additions & 0 deletions test/internet/test-http2-https-origin-string-correctness.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
'use strict';

// Ref: https://github.com/nodejs/node/issues/39919

const common = require('../common');
if (!common.hasCrypto)
common.skip('missing crypto');

const assert = require('assert');
const http2 = require('http2');

function _verifyOriginSet(session, originString) {
session.once('remoteSettings', () => {
assert.strictEqual(typeof session.originSet, 'object');
assert.strictEqual(session.originSet.length, 1);
assert.strictEqual(session.originSet[0], originString);
session.close();
});
session.once('error', (error) => {
assert.strictEqual(error.code, 'ECONNREFUSED');
session.close();
});
}

function withServerName() {
const session = http2.connect('https://1.1.1.1', { servername: 'cloudflare-dns.com' });
_verifyOriginSet(session, 'https://cloudflare-dns.com');
}

function withEmptyServerName() {
const session = http2.connect('https://1.1.1.1', { servername: '' });
_verifyOriginSet(session, 'https://1.1.1.1');
}

function withoutServerName() {
const session = http2.connect('https://1.1.1.1');
_verifyOriginSet(session, 'https://1.1.1.1');
}

withServerName();
withEmptyServerName();
withoutServerName();

0 comments on commit c43b614

Please sign in to comment.