Skip to content

hyper-util's CONNECT tunnel dials a portless target on 443 whatever the scheme #720

Description

@wkirschenmann

Tunnel::call in hyper-util 0.1.20 dials a CONNECT target that names no port on 443 whatever the
scheme: tunnel.rs:146 hardcodes the fallback (unwrap_or(443)), and there is no knob to change it.
The direct path disagrees, because HttpConnector applies the scheme default, so a portless
http://host reaches port 80 without a proxy and port 443 through one. Nothing upstream covers this;
hyperium/hyper-util#300 is the separate split-read defect.

This repo pins the defect rather than working around it: the armonik-transport README's "Known
issues" section carries the bullet, and the tripwire test
known_issue_a_portless_http_target_is_dialled_on_443_not_80 in tests/upstream_tunnel.rs turns red
the day a hyper-util release changes the default. No fix in this crate: the code is upstream's, and
ArmoniK deployments always name a port, so the case is unreachable in practice.

Done when a hyper-util release applies the scheme default. Then delete the tripwire and the README
bullet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions