Make server config catch errors instead of crashing

Remove Security.dll, not required and causes problems (name conflict with system.dll, DO NOT READD)
This commit is contained in:
Flamefire committed 2014-03-20 02:30:29 +01:00
1 parent 8c7a22103b
commit a9ff5f6004
5 files changed
+73 -42

No files matched your search

+10 -5
View File
@@ -16,9 +16,9 @@
#endregion
using System;
using System.Diagnostics;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Diagnostics;
using System.Net;
namespace ServerLib
@@ -191,10 +191,15 @@ namespace ServerLib
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden,
};
Process p = Process.Start(info);
p.WaitForExit();
p.Close();
try
{
using (Process p = Process.Start(info))
{
p.WaitForExit();
p.Close();
}
}
catch (Exception) {}
#else
//Required?
Binary file not shown.
+22 -1
View File
@@ -17,6 +17,7 @@
using System.Security.Authentication;
using System.Security.Principal;
using System.Windows.Forms;
using Security.Cryptography;
using Security.Cryptography.X509Certificates;
using System;
@@ -124,7 +125,22 @@ namespace WebserverInitalConfig
keyParam.Parameters.Add(new CngProperty("Length", BitConverter.GetBytes(2048), CngPropertyOptions.None));
CngKey key = CngKey.Create(CngAlgorithm2.Rsa, Guid.NewGuid().ToString(), keyParam);
CngKey key;
try
{
key= CngKey.Create(CngAlgorithm2.Rsa, Guid.NewGuid().ToString(), keyParam);
}
catch (PlatformNotSupportedException)
{
try
{
key = CngKey.Create(CngAlgorithm2.Aes, Guid.NewGuid().ToString(), keyParam);
}
catch (PlatformNotSupportedException)
{
return null;
}
}
X509CertificateCreationParameters param = new X509CertificateCreationParameters(new X500DistinguishedName(subjectName))
{
@@ -156,6 +172,11 @@ namespace WebserverInitalConfig
if (!IsAdministrator())
throw new AuthenticationException();
cert = _GetSelfSignedCert(certName);
if (cert == null)
{
MessageBox.Show("Could not create certificate. Secure server connection may not work. Disable it if required.");
return;
}
_AddCertToStore(cert);
}
_BindCert(cert);
+40 -32
View File
@@ -20,6 +20,7 @@ using System.Diagnostics;
using System.IO;
using System.Net;
using System.Security.Authentication;
using System.Windows.Forms;
namespace WebserverInitalConfig
{
@@ -29,49 +30,56 @@ namespace WebserverInitalConfig
private static void Main(string[] args)
// ReSharper restore InconsistentNaming
{
int port;
if (args.Length < 2 || !int.TryParse(args[0], out port))
try
{
Console.WriteLine("Usage: VocaluxeServerConfig port isHttps");
Environment.Exit(-1);
}
else
{
CConfigHttpApi config = new CConfigHttpApi("Vocaluxe", Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Vocaluxe.exe"), "0.0.0.0", port, true);
try
int port;
if (args.Length < 2 || !int.TryParse(args[0], out port))
{
config.AddFirewallRule();
if (args[1].ToLower() == "true")
config.CreateAndAddCert(Dns.GetHostName());
if ((args.Length >= 3 && args[2] == "reserve") || CConfigHttpApi.IsAdministrator())
config.ReserveUrl();
Console.WriteLine("Usage: VocaluxeServerConfig port isHttps");
Environment.Exit(-1);
}
catch (AuthenticationException)
else
{
ProcessStartInfo proc = new ProcessStartInfo
{
UseShellExecute = true,
WorkingDirectory = Environment.CurrentDirectory,
FileName = Process.GetCurrentProcess().MainModule.FileName,
Arguments = args[0] + " " + args[1],
Verb = "runas",
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden,
};
CConfigHttpApi config = new CConfigHttpApi("Vocaluxe", Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Vocaluxe.exe"), "0.0.0.0", port, true);
try
{
Process.Start(proc);
config.AddFirewallRule();
if (args[1].ToLower() == "true")
config.CreateAndAddCert(Dns.GetHostName());
if ((args.Length >= 3 && args[2] == "reserve") || CConfigHttpApi.IsAdministrator())
config.ReserveUrl();
}
catch
catch (AuthenticationException)
{
// The user refused the elevation.
// Do nothing and return directly ...
Environment.Exit(-1);
ProcessStartInfo proc = new ProcessStartInfo
{
UseShellExecute = true,
WorkingDirectory = Environment.CurrentDirectory,
FileName = Process.GetCurrentProcess().MainModule.FileName,
Arguments = args[0] + " " + args[1],
Verb = "runas",
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden,
};
try
{
Process.Start(proc);
}
catch
{
// The user refused the elevation.
// Do nothing and return directly ...
Environment.Exit(-1);
}
}
}
}
catch (Exception e)
{
MessageBox.Show("Error while installing server: " + e.Message);
}
}
}
}
@@ -41,16 +41,13 @@
<EmbedInteropTypes>True</EmbedInteropTypes>
<HintPath>..\Output\Interop.NetFwTypeLib.dll</HintPath>
</Reference>
<Reference Include="Security, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Output\Security.dll</HintPath>
</Reference>
<Reference Include="Security.Cryptography, Version=1.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Output\Security.Cryptography.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />