mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-27 07:04:57 +01:00
Merge upstream
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user