2020-06-11 04:08:35 +03:00
|
|
|
[package]
|
|
|
|
name = "hgcli"
|
|
|
|
edition = "2018"
|
|
|
|
version = "0.1.0"
|
|
|
|
authors = ['Facebook']
|
|
|
|
license = "GPLv2+"
|
|
|
|
include = ["src/**/*.rs"]
|
|
|
|
|
|
|
|
[dependencies]
|
mononoke: allow using ALPN to identify hgcli traffic
Summary:
I'd like to eventually add an actual HTTP stack in Mononoke Server. Doing this
will be easier / nicer if we don't have to peek at the traffic to decide how
to interpret it (i.e. ALPN vs. HTTP).
To do so, we can use ALPN. If the client tells us they want the hgcli protocol,
we can use that, and skip peeking at the traffic entirely.
Obviously, we can't roll this out in one go, so first, let's accept traffic
advertised as hgcli via ALPN. Later, we can stop peeking at the traffic
entirely once we're not receiving any traffic from hgcli not advertised via
ALPN. I added ODS counters so we can canary this.
Note that the way I set this up is that if the client requests something that
isn't ALPN (e.g. H2), we just continue the handshake but don't select anything.
Finally, note that client side, we don't care (or even try to read) what the
server actually selected.
Reviewed By: johansglock
Differential Revision: D25954535
fbshipit-source-id: 183f6f56b2c8895aa8b18101565a4f2cd643be8d
2021-01-20 20:14:11 +03:00
|
|
|
alpn = { path = "../alpn" }
|
2020-11-16 14:23:58 +03:00
|
|
|
permission_checker = { path = "../permission_checker" }
|
2020-06-11 04:08:35 +03:00
|
|
|
scuba_ext = { path = "../common/scuba_ext" }
|
2020-09-15 20:03:40 +03:00
|
|
|
session_id = { path = "../server/session_id" }
|
2020-06-11 04:08:35 +03:00
|
|
|
sshrelay = { path = "../sshrelay" }
|
|
|
|
failure_ext = { git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
|
|
|
|
fbinit = { git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
|
2020-11-05 17:04:45 +03:00
|
|
|
futures_ext = { package = "futures_01_ext", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
|
2020-06-11 04:08:35 +03:00
|
|
|
futures_stats = { git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
|
|
|
|
hostname = { git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
|
|
|
|
secure_utils = { git = "https://github.com/facebookexperimental/rust-shed.git", branch = "master" }
|
|
|
|
anyhow = "1.0"
|
2020-08-18 19:06:36 +03:00
|
|
|
bytes = { version = "0.5", features = ["serde"] }
|
|
|
|
bytes-old = { package = "bytes", version = "0.4", features = ["serde"] }
|
2020-06-11 04:08:35 +03:00
|
|
|
clap = "2.33"
|
|
|
|
dns-lookup = "1.0"
|
2020-07-07 06:47:39 +03:00
|
|
|
futures = { version = "0.3.5", features = ["async-await", "compat"] }
|
2020-06-11 04:08:35 +03:00
|
|
|
futures-old = { package = "futures", version = "0.1" }
|
2020-12-18 17:08:52 +03:00
|
|
|
futures-util = "0.3.7"
|
2020-06-11 04:08:35 +03:00
|
|
|
libc = "0.2"
|
|
|
|
openssl = "0.10"
|
|
|
|
slog = { version = "2.5", features = ["max_level_debug"] }
|
|
|
|
slog-term = "2.4.2"
|
2021-01-18 21:35:58 +03:00
|
|
|
tokio = { version = "=0.2.13", features = ["full", "test-util"] }
|
2020-08-18 19:06:36 +03:00
|
|
|
tokio-openssl = "0.4"
|
2020-09-09 03:51:25 +03:00
|
|
|
tokio-util = { version = "0.2", features = ["codec", "udp"] }
|
2020-06-11 04:08:35 +03:00
|
|
|
users = "0.9"
|