Merge upstream

This commit is contained in:
Cyberboss
2017-10-02 11:07:55 -04:00
3 changed files with 36 additions and 2 deletions
+15 -2
View File
@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using TGServiceInterface;
@@ -75,6 +75,12 @@ namespace TGCommandLine
return ExitCode.ConnectionError;
}
if (!SentVMMWarning && Server.VersionMismatch(out string error))
{
SentVMMWarning = true;
Console.WriteLine(error);
}
try
{
return new CLICommand().DoRun(argsAsList);
@@ -112,7 +118,7 @@ namespace TGCommandLine
Console.WriteLine();
return result;
}
static bool SentVMMWarning = false;
static string AcceptedBadCert;
static bool BadCertificateInteractive(string message)
{
@@ -155,6 +161,7 @@ namespace TGCommandLine
switch (NextCommand.ToLower())
{
case "remote":
SentVMMWarning = false;
Console.Write("Enter server address: ");
var address = Console.ReadLine();
Console.Write("Enter server port: ");
@@ -186,10 +193,16 @@ namespace TGCommandLine
else
{
Console.WriteLine("Connected remotely");
if (Server.VersionMismatch(out res))
{
SentVMMWarning = true;
Console.WriteLine(res);
}
Console.WriteLine("Type 'disconnect' to return to local mode");
}
break;
case "disconnect":
SentVMMWarning = false;
Server.MakeLocalConnection();
Console.WriteLine("Switch to local mode");
break;
+6
View File
@@ -1,6 +1,7 @@
using System;
using System.Drawing;
using System.Windows.Forms;
using TGServiceInterface;
namespace TGControlPanel
{
@@ -9,6 +10,11 @@ namespace TGControlPanel
public Main()
{
InitializeComponent();
if (Server.VersionMismatch(out string error) && MessageBox.Show(error, "Warning", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
{
Close();
return;
}
Panels.SelectedIndexChanged += Panels_SelectedIndexChanged;
Panels.SelectedIndex += Math.Min(Properties.Settings.Default.LastPageIndex, Panels.TabCount - 1);
InitRepoPage();
+15
View File
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Net;
using System.Net.Security;
using System.Security.Principal;
@@ -94,6 +95,20 @@ namespace TGServiceInterface
ChannelFactoryCache.Clear();
}
public static bool VersionMismatch(out string errorMessage)
{
var splits = Server.GetComponent<ITGSService>().Version().Split(' ');
var theirs = new Version(splits[splits.Length - 1].Substring(1));
var ours = new Version(FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).FileVersion);
if(theirs != ours)
{
errorMessage = String.Format("Version mismatch between interface version ({0}) and service version ({1}). Some functionality may crash this program.", ours, theirs);
return true;
}
errorMessage = null;
return false;
}
/// <summary>
/// Set the interface to look for services on a remote computer
/// </summary>