About | Log | Files | Refs
commit e524b8196a06fbaab84356b8b748e6c368aeb201
parent 98624cf9da2804b27566a38c51dbf840c76faad5
Author: Ben Connors <benconnors@outlook.com>
Date: Fri, 11 Sep 2026 10:07:20 -0400
Use absolute link in README
Diffstat:
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
@@ -81,7 +81,7 @@ client SSH --A-> client socat --B-> server socat --C-> server SSH
```
Connections A and C are both entirely reliable: A uses file descriptors and C uses TCP. Connection B, however, uses UDP and is not reliable. The result is that the whole connection `client SSH -> server SSH` is unreliable, yet since SSH is designed to run over TCP it has no facilities for dealing with this. At the first lost, corrupted, etc. packet the SSH session will be terminated.
-We fix connection B using SCTP-over-UDP via [sctp-echo](/cgit/sctp-echo). For the reasons described there, we require the use of [usrsctp](https://github.com/Kurento/libusrsctp) rather than the kernel implementations of SCTP.
+We fix connection B using SCTP-over-UDP via [sctp-echo](https://benconnors.ca/git/sctp-echo). For the reasons described there, we require the use of [usrsctp](https://github.com/Kurento/libusrsctp) rather than the kernel implementations of SCTP.
The two files `ssh_holepunch_client.py` and `ssh_holepunch_server.py` implement the two sides of this. We use `ssh_holepunch_server.py` just as `udp_holepunch.py server`, except it will open a connection to the SSH server once holepunching has been established.