Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add proper version negotiation #109

Merged
merged 16 commits into from
Jan 16, 2024
Merged

add proper version negotiation #109

merged 16 commits into from
Jan 16, 2024

Conversation

francoismichel
Copy link
Owner

@francoismichel francoismichel commented Jan 15, 2024

Until now, the version was strictly checked against the software version.

Now that the project gains in popularity and that a spec is coming, other people may try implementing the protocol.

This adds a version negotiation mechanism that is still quite strict.

  • Add the concept of protocol experimental spec version, this currently implements the alpha-00 experimental spec version.
  • Do not check the software version during the negotiation, except for versions before alpha-00, where the implementation name then MUST be francoismichel/ssh3
  • Right now, the server supports clients with version alpha-00 and older, i.e. clients with implementation name francoismichel/ssh3 and software version between 0.1.4 (included) and 0.1.5 (included)
  • Future clients implementing future draft versions will have to adapt their version to the server version. If the server does not support the client version, the client has to retry a new connection with a version that matches the server's version. A message should be displayed to the user, ensuring that the user knows that they should update the server version. Such a message will disappear with stable versions of the protocol.

@francoismichel francoismichel changed the title add version negotiation add proper version negotiation Jan 15, 2024
@francoismichel francoismichel merged commit 53d7264 into main Jan 16, 2024
29 checks passed
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.

None yet

1 participant