Go to file
Fabian Grünbichler c18e63b96f add tunnel implementation
the websocket tunnel helper accepts control commands (encoded as
single-line JSON) on stdin, and prints responses on stdout.

the following commands are available:
- "connect" a 'control' tunnel via a websocket
- "forward" a local unix socket to a remote socket via a websocket
-- if requested, this will ask for a ticket via the control tunnel after
accepting a new connection on the unix socket
- "close" the control tunnel and any forwarded socket

any other json input (without the 'control' flag set) is forwarded as-is
to the remote end of the control tunnel.

internally, the tunnel helper will spawn tokio tasks for
- handling the control tunnel connection (new commands are passed in via
an mpsc channel together with a oneshot channel for the response)
- handling accepting new connections on each forwarded unix socket
- handling forwarding data over accepted forwarded connections

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2022-02-04 09:15:40 +01:00
.cargo initial commit 2022-02-04 09:15:40 +01:00
src add tunnel implementation 2022-02-04 09:15:40 +01:00
.gitignore initial commit 2022-02-04 09:15:40 +01:00
Cargo.toml add tunnel implementation 2022-02-04 09:15:40 +01:00