Prechádzať zdrojové kódy

Bug fix: Session.ParseUrl cannot accept fingerprint parameter for sessions over TLS

(cherry picked from commit 5e6932f19ce261eefe0b750f025e8999dac482d3)

Source commit: c014c7900ac1bc3a4d2113de42c30ebe1cbc5476
Martin Prikryl 5 rokov pred
rodič
commit
36d3f91c67
1 zmenil súbory, kde vykonal 16 pridanie a 1 odobranie
  1. 16 1
      dotnet/SessionOptions.cs

+ 16 - 1
dotnet/SessionOptions.cs

@@ -227,7 +227,22 @@ namespace WinSCP
                     const string RawSettingsPrefix = "x-";
                     if (parameterName.Equals("fingerprint", StringComparison.OrdinalIgnoreCase))
                     {
-                        SshHostKeyFingerprint = parameter;
+                        switch (Protocol)
+                        {
+                            case Protocol.Sftp:
+                            case Protocol.Scp:
+                                SshHostKeyFingerprint = parameter;
+                                break;
+
+                            case Protocol.Ftp:
+                            case Protocol.Webdav:
+                            case Protocol.S3:
+                                TlsHostCertificateFingerprint = parameter;
+                                break;
+
+                            default:
+                                throw new ArgumentException();
+                        }
                     }
                     else if (parameterName.StartsWith(RawSettingsPrefix, StringComparison.OrdinalIgnoreCase))
                     {