Expand description
Client-to-Client protocol to forward TCP connections
This is a new (and still slightly experimental feature) that allows you to forward TCP connections over a wormhole
transit connection.
It is bound to an APPID, which is distinct to the one used for file transfer. Therefore, the codes used
for port forwarding are in an independent namespace than those for sending files.
At its core, “peer messages” are exchanged over an established wormhole connection with the other side.
They are used to set up a transit portal that will be used instead of the wormhole connection, which will be closed.
Connections are tracked via an identifier, and multiplexed over the transit channel. The forwarding is
“logical” and not “raw”; because “TCP in TCP” tunneling is known to be problematic. Packages are sent
and received as they come in, no additional buffering is applied. (Under the assumption that those applications
that need buffering already do it on their side, and those who don’t, don’t.)
Structs§
- The application specific version information for this protocol.
- A pending forwarding offer from the other side
Enums§
- An error occurred when establishing a port forwarding session
Constants§
- The App ID associated with this protocol.
- An
crate::AppConfigwith sane defaults for this protocol.
Functions§
- Request a port forwarding offer from the other side
- Offer to forward some ports