Skip to content

Commit

Permalink
Merge pull request #14 from Migarl/master
Browse files Browse the repository at this point in the history
Support ssh v2 when version string does not contain CR
  • Loading branch information
xtyxtyx committed Jan 11, 2022
2 parents 025740a + 133eea6 commit c645e79
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions lib/src/ssh_transport.dart
Expand Up @@ -268,9 +268,13 @@ class SSHTransport {
final bufferString = latin1.decode(_buffer.data);

// SSH version exchange is terminated by \r\n.
final index = bufferString.indexOf('\r\n');
var index = bufferString.indexOf('\r\n');
if (index == -1) {
return;
// In the (rare) case SSH-2 version string is terminated by \n only (observed on Synology DS120j 2021)
index = bufferString.indexOf('\n');
_buffer.consume(index + 1);
} else {
_buffer.consume(index + 2);
}

final versionString = bufferString.substring(0, index);
Expand All @@ -282,7 +286,6 @@ class SSHTransport {
printTrace?.call('<- $socket: $versionString');
printDebug?.call('SSHTransport._remoteVersion = "$versionString"');
_remoteVersion = versionString;
_buffer.consume(index + 2);

if (isServer) {
_sendKexInit();
Expand Down

0 comments on commit c645e79

Please sign in to comment.