Skip to content

Conversation

@lazka
Copy link
Contributor

@lazka lazka commented Sep 10, 2025

rsync provides a rsync-ssl script which tries to communicate over tls, on port 874 instead of 873, if it finds openssl/gnutls/stunnel.

In theory we could add a separate cli option for this since there is no official URL scheme for rsync+tls, but to keep things simple for everyone just allow rsyncs:// in rsync URLs.

In case a URL is starting with rsyncs:// we will use rsync-ssl instead of rsync, and rewrite the url back to rsync://.

For testing, here are two public servers that support TLS:

  • rsync-ssl rsync://mirrors.dotsrc.org
  • rsync-ssl rsync://repo.msys2.org

Using "--contimeout" with rsync-ssl leads to:
"The --contimeout option may only be used when connecting to an rsync daemon."

From my testing "--timeout" aborts though if openssl takes too long to connect, suggesting that it covers both connection and i/o in this scenario. Bump the --timeout to 60 so the upper bound is the same as without openssl.

rsync provides a rsync-ssl script which tries to communicate over
tls, on port 874 instead of 873, if it finds openssl/gnutls/stunnel.

In theory we could add a separate cli option for this since there is
no official URL scheme for rsync+tls, but to keep things simple for
everyone just allow rsyncs:// in rsync URLs.

In case a URL is starting with rsyncs:// we will use rsync-ssl instead
of rsync, and rewrite the url back to rsync://.

For testing, here are two public servers that support TLS:

* rsync-ssl rsync://mirrors.dotsrc.org
* rsync-ssl rsync://repo.msys2.org

Using "--contimeout" with rsync-ssl leads to:
"The --contimeout option may only be used when connecting to an rsync daemon."

From my testing "--timeout" aborts though if openssl takes too long to connect,
suggesting that it covers both connection and i/o in this scenario.
Bump the --timeout to 60 so the upper bound is the same as without openssl.
@jbkempf
Copy link
Collaborator

jbkempf commented Sep 10, 2025

@elboulangero

@elboulangero
Copy link
Contributor

Looks neat, it's a nice addition!

@jbkempf jbkempf merged commit a97e516 into etix:master Sep 10, 2025
3 checks passed
@lazka
Copy link
Contributor Author

lazka commented Sep 10, 2025

Thanks!

I forgot that I had already created an issue for this -> #176

@jbkempf jbkempf added this to the v0.6.2 milestone Sep 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants