Skip to content

http2.connect with url starting with "http://" does not pass options to net.connect #29811

Closed
@sogaani

Description

  • Version:
    v12.11.1

  • Platform:
    Windows Subsystem Linux
    Linux A062787428 4.4.0-17134-Microsoft Fix/postmortem #706-Microsoft Mon Apr 01 18:13:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux

net.connect() options has no effect when I execute http2.connect, thought The document says "Any net.connect() or tls.connect() options can be provided."

Related codes is here which does not pass options of http2.connect to net.connect().

Code to reproduce.

'use strict';
const common = require('../common');
if (!common.hasMultiLocalhost())
  common.skip('platform-specific test.');

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

const server = http2.createServer((req, res) => {
  console.log(`Connect from: ${req.connection.remoteAddress}`);
  assert.strictEqual(req.connection.remoteAddress, '127.0.0.2');

  req.on('end', () => {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end(`You are from: ${req.connection.remoteAddress}`);
  });
  req.resume();
});

server.listen(0, '127.0.0.1', () => {
  const options = { localAddress: '127.0.0.2' };

  const client = http2.connect('http://localhost:' + server.address().port, options);
  const req = client.request({
    ':path': '/'
  });
  req.on('data', () => req.resume())
  req.on('end', function() {
    client.close();
    req.close();
    server.close();
    process.exit();
  });
  req.end();
});

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    http2Issues or PRs related to the http2 subsystem.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions