mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-25 14:06:41 +01:00
Fix bad certificate handling
This commit is contained in:
@@ -102,16 +102,6 @@ namespace TGCommandLine
|
||||
|
||||
static void ReplaceInterface(Interface I)
|
||||
{
|
||||
if (!interactive)
|
||||
I.SetBadCertificateHandler((message) =>
|
||||
{
|
||||
foreach (var J in Environment.GetCommandLineArgs())
|
||||
if (J.ToLower() == "--disable-ssl-verification") //im just not even going to document this because i hate it so much
|
||||
return true;
|
||||
return false;
|
||||
});
|
||||
else
|
||||
I.SetBadCertificateHandler(BadCertificateInteractive);
|
||||
currentInterface = I;
|
||||
ConsoleCommand.Interface = I;
|
||||
InstanceRootCommand.currentInterface = I;
|
||||
@@ -192,6 +182,7 @@ namespace TGCommandLine
|
||||
{
|
||||
var argsAsList = new List<string>(args);
|
||||
for (var I = 0; I < argsAsList.Count - 1; ++I)
|
||||
{
|
||||
if (argsAsList[I].ToLower() == "--instance")
|
||||
{
|
||||
if (!CheckInstanceConnectivity(args[I + 1], true))
|
||||
@@ -199,10 +190,18 @@ namespace TGCommandLine
|
||||
argsAsList.RemoveRange(I, 2);
|
||||
break;
|
||||
}
|
||||
else if (argsAsList[I].ToLower() == "--disable-ssl-verification") //im just not even going to document this because i hate it so much
|
||||
{
|
||||
argsAsList.RemoveAt(I);
|
||||
--I;
|
||||
Interface.SetBadCertificateHandler(_ => false);
|
||||
}
|
||||
}
|
||||
return (int)RunCommandLine(argsAsList);
|
||||
}
|
||||
//interactive mode
|
||||
|
||||
Interface.SetBadCertificateHandler(BadCertificateInteractive);
|
||||
Console.WriteLine("Type 'instance' to connect to a server instance");
|
||||
Console.WriteLine("Type 'remote' to connect to a remote service");
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace TGControlPanel
|
||||
}
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Interface.SetBadCertificateHandler(BadCertificateHandler);
|
||||
var login = new Login();
|
||||
login.Show();
|
||||
Application.Run();
|
||||
|
||||
@@ -174,7 +174,7 @@ namespace TGServiceInterface
|
||||
/// Sets the function called when a remote login fails due to the server having an invalid SSL cert
|
||||
/// </summary>
|
||||
/// <param name="handler">The <see cref="Func{T, TResult}"/> to be called when a remote login is attempted while the server posesses a bad certificate. Passed a <see cref="string"/> of error information about the and should return <see langword="true"/> if it the connection should be made anyway</param>
|
||||
public void SetBadCertificateHandler(Func<string, bool> handler)
|
||||
public static void SetBadCertificateHandler(Func<string, bool> handler)
|
||||
{
|
||||
ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) =>
|
||||
{
|
||||
@@ -196,7 +196,7 @@ namespace TGServiceInterface
|
||||
ErrorMessage = "An unknown error occurred.";
|
||||
break;
|
||||
}
|
||||
ErrorMessage = String.Format("The certificate failed to verify for {0}:{1}. {2} {3}", HTTPSURL, HTTPSPort, ErrorMessage, cert.ToString());
|
||||
ErrorMessage = String.Format("The server's certificate failed to verify! Error: {0} Cert: {1}", ErrorMessage, cert.ToString());
|
||||
return handler(ErrorMessage);
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user