/// The name of the setting containing the last read changelog version.
@@ -34,12 +34,12 @@ public static class ChangelogManager
private const string LastReadChangelogSettingName = "LastReadChangelog";
///
- /// This array contains, in reverse order, all versions of the app for which a changelog is available.
+ /// This array contains, in reverse order, all previous versions of the app for which a changelog is available.
///
- /// The first entry should always be .
- private static readonly string[] Versions = new[]
+ /// must not be included in this list.
+ private static readonly string[] PreviousVersions = new[]
{
- CurrentVersion,
+ "1.9.0",
"1.8.2",
};
@@ -70,14 +70,18 @@ public static string ProduceChangelog()
changelog.Append(ReadHtmlFile("head")
.Replace("{CurrentVersion}", CurrentVersion));
- foreach (string version in Versions)
+ changelog.Append(ReadHtmlFile(CurrentVersion));
+ if (CurrentVersion != lastReadChangelog)
{
- if (version == lastReadChangelog)
+ foreach (string version in PreviousVersions)
{
- break;
- }
+ if (version == lastReadChangelog)
+ {
+ break;
+ }
- changelog.Append(ReadHtmlFile(version));
+ changelog.Append(ReadHtmlFile(version));
+ }
}
changelog.Append(ReadHtmlFile("tail"));
diff --git a/RemoteTerminal/Changelogs/1.9.1.htm b/RemoteTerminal/Changelogs/1.9.1.htm
new file mode 100644
index 0000000..2f0656d
--- /dev/null
+++ b/RemoteTerminal/Changelogs/1.9.1.htm
@@ -0,0 +1,9 @@
+1.9.1 (2017-05-29)
+
+ Fixed a regression with private key authentication
+
+
+ Since 1.9.0 private key authentication did not work because of a threading issue.
+ The terminal just got stuck at a blank screen with a red border.
+ Password and Private Key Agent authentication was not affected by this bug.
+
diff --git a/RemoteTerminal/Package.appxmanifest b/RemoteTerminal/Package.appxmanifest
index 8d480b4..4f79763 100644
--- a/RemoteTerminal/Package.appxmanifest
+++ b/RemoteTerminal/Package.appxmanifest
@@ -1,6 +1,6 @@
-
+
Remote Terminal
Stefan Podskubka
diff --git a/RemoteTerminal/Properties/AssemblyInfo.cs b/RemoteTerminal/Properties/AssemblyInfo.cs
index 0871453..7662c9a 100644
--- a/RemoteTerminal/Properties/AssemblyInfo.cs
+++ b/RemoteTerminal/Properties/AssemblyInfo.cs
@@ -23,6 +23,6 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.9.0.22")]
-[assembly: AssemblyFileVersion("1.9.0.22")]
+[assembly: AssemblyVersion("1.9.1.23")]
+[assembly: AssemblyFileVersion("1.9.1.23")]
[assembly: ComVisible(false)]
\ No newline at end of file
diff --git a/RemoteTerminal/RemoteTerminal.csproj b/RemoteTerminal/RemoteTerminal.csproj
index 2bcaffa..f86cce3 100644
--- a/RemoteTerminal/RemoteTerminal.csproj
+++ b/RemoteTerminal/RemoteTerminal.csproj
@@ -199,6 +199,7 @@
+
Designer
diff --git a/RemoteTerminal/TerminalPage.xaml.cs b/RemoteTerminal/TerminalPage.xaml.cs
index 5d3ab35..40c9601 100644
--- a/RemoteTerminal/TerminalPage.xaml.cs
+++ b/RemoteTerminal/TerminalPage.xaml.cs
@@ -252,6 +252,7 @@ private void PreviewGrid_ItemClick(object sender, ItemClickEventArgs e)
private void PreviewGrid_ItemCloseButtonClick(object sender, RoutedEventArgs e)
{
ITerminal terminal = ((Button)sender).Tag as ITerminal;
+ TerminalManager.Remove(terminal);
if (this.Terminal == terminal)
{
var switchToTerminal = TerminalManager.Terminals.Where(t => t != terminal).FirstOrDefault();
@@ -264,8 +265,6 @@ private void PreviewGrid_ItemCloseButtonClick(object sender, RoutedEventArgs e)
this.Terminal = switchToTerminal;
}
}
-
- TerminalManager.Remove(terminal);
}
///
diff --git a/RemoteTerminal/Terminals/AbstractTerminal.cs b/RemoteTerminal/Terminals/AbstractTerminal.cs
index 31f101d..ca1437c 100644
--- a/RemoteTerminal/Terminals/AbstractTerminal.cs
+++ b/RemoteTerminal/Terminals/AbstractTerminal.cs
@@ -316,30 +316,30 @@ public bool ScreenHasFocus
///
public void PowerOn()
{
- Task.Factory.StartNew(async () =>
+ switch (connectionData.Type)
{
- switch (connectionData.Type)
- {
- case ConnectionType.Telnet:
- this.connection = new TelnetConnection();
- break;
- case ConnectionType.Ssh:
- this.connection = new SshConnection();
- break;
- default:
- break;
- }
+ case ConnectionType.Telnet:
+ this.connection = new TelnetConnection();
+ break;
+ case ConnectionType.Ssh:
+ this.connection = new SshConnection();
+ break;
+ default:
+ break;
+ }
- this.connection.Initialize(connectionData);
- this.IsConnected = true;
- this.ScreenHasFocus = true;
+ this.connection.Initialize(connectionData);
+ this.IsConnected = true;
+ this.ScreenHasFocus = true;
- var connected = this.Connected;
- if (connected != null)
- {
- connected.Invoke(this, new EventArgs());
- }
+ var connected = this.Connected;
+ if (connected != null)
+ {
+ connected.Invoke(this, new EventArgs());
+ }
+ Task.Factory.StartNew(async () =>
+ {
this.screenInitWaiter.Wait();
bool successful = await this.connection.ConnectAsync(this);
if (successful)