mirror of
https://github.com/tribufu/ServerManagers
synced 2026-05-06 15:17:34 +00:00
added back the server call home
This commit is contained in:
parent
93d273c133
commit
fc6f309178
11 changed files with 152 additions and 6 deletions
|
|
@ -350,6 +350,12 @@
|
|||
<setting name="DiscordBotStatusCheckTime" serializeAs="String">
|
||||
<value>10</value>
|
||||
</setting>
|
||||
<setting name="ServerCallUrlFormat" serializeAs="String">
|
||||
<value>http://servermanagers.azurewebsites.net/api/server/call/{0}/{1}/</value>
|
||||
</setting>
|
||||
<setting name="ServerCallUrlDelay" serializeAs="String">
|
||||
<value>12</value>
|
||||
</setting>
|
||||
</ServerManagerTool.Config>
|
||||
<ServerManagerTool.Common.CommonConfig>
|
||||
<setting name="DefaultSteamAPIKey" serializeAs="String">
|
||||
|
|
@ -861,6 +867,9 @@
|
|||
<setting name="LoggingMaxArchiveDays" serializeAs="String">
|
||||
<value>30</value>
|
||||
</setting>
|
||||
<setting name="ServerCallUrlLast" serializeAs="String">
|
||||
<value>2000-01-01</value>
|
||||
</setting>
|
||||
</ServerManagerTool.Config>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
|
|
|
|||
|
|
@ -196,6 +196,20 @@ namespace ServerManagerTool
|
|||
}
|
||||
}
|
||||
|
||||
private async Task CallHomeAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var publicIP = await NetworkUtils.DiscoverPublicIPAsync();
|
||||
var url = new Uri(string.Format(Config.Default.ServerCallUrlFormat, Config.Default.ServerManagerCode, publicIP));
|
||||
await NetworkUtils.PerformCallToAPIAsync(url);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.WriteLine($"Failed calling home to API.\r\n{ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
public static void DiscoverMachinePublicIP(bool forceOverride)
|
||||
{
|
||||
if (forceOverride || string.IsNullOrWhiteSpace(Config.Default.MachinePublicIP))
|
||||
|
|
@ -509,6 +523,14 @@ namespace ServerManagerTool
|
|||
{
|
||||
StartDiscordBot();
|
||||
}
|
||||
|
||||
if (Config.Default.ServerCallUrlLast.AddHours(Config.Default.ServerCallUrlDelay) < DateTime.Now)
|
||||
{
|
||||
CallHomeAsync().DoNotWait();
|
||||
|
||||
Config.Default.ServerCallUrlLast = DateTime.Now;
|
||||
Config.Default.Save();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnExit(ExitEventArgs e)
|
||||
|
|
@ -538,8 +560,7 @@ namespace ServerManagerTool
|
|||
|
||||
LogManager.Configuration.Variables["logDir"] = logDir;
|
||||
|
||||
var fileTargets = LogManager.Configuration.AllTargets.OfType<FileTarget>();
|
||||
foreach (var fileTarget in fileTargets)
|
||||
foreach (var fileTarget in LogManager.Configuration.AllTargets.OfType<FileTarget>())
|
||||
{
|
||||
var fileName = Path.GetFileNameWithoutExtension(fileTarget.FileName.ToString());
|
||||
fileTarget.FileName = Path.Combine(logDir, $"{fileName}.log");
|
||||
|
|
|
|||
30
src/ARKServerManager/Config.Designer.cs
generated
30
src/ARKServerManager/Config.Designer.cs
generated
|
|
@ -3048,5 +3048,35 @@ namespace ServerManagerTool {
|
|||
this["LoggingMaxArchiveDays"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("http://servermanagers.azurewebsites.net/api/server/call/{0}/{1}/")]
|
||||
public string ServerCallUrlFormat {
|
||||
get {
|
||||
return ((string)(this["ServerCallUrlFormat"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("12")]
|
||||
public int ServerCallUrlDelay {
|
||||
get {
|
||||
return ((int)(this["ServerCallUrlDelay"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("2000-01-01")]
|
||||
public global::System.DateTime ServerCallUrlLast {
|
||||
get {
|
||||
return ((global::System.DateTime)(this["ServerCallUrlLast"]));
|
||||
}
|
||||
set {
|
||||
this["ServerCallUrlLast"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -839,5 +839,14 @@
|
|||
<Setting Name="LoggingMaxArchiveDays" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">30</Value>
|
||||
</Setting>
|
||||
<Setting Name="ServerCallUrlFormat" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">http://servermanagers.azurewebsites.net/api/server/call/{0}/{1}/</Value>
|
||||
</Setting>
|
||||
<Setting Name="ServerCallUrlDelay" Type="System.Int32" Scope="Application">
|
||||
<Value Profile="(Default)">12</Value>
|
||||
</Setting>
|
||||
<Setting Name="ServerCallUrlLast" Type="System.DateTime" Scope="User">
|
||||
<Value Profile="(Default)">2000-01-01</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
|
|
@ -2212,7 +2212,11 @@ namespace ServerManagerTool.Lib
|
|||
|
||||
private static Logger GetLogger(string logFilePath, string logType, string logName)
|
||||
{
|
||||
#if DEBUG
|
||||
return GetLogger(logFilePath, logType, logName ?? string.Empty, LogLevel.Debug, LogLevel.Fatal);
|
||||
#else
|
||||
return GetLogger(logFilePath, logType, logName ?? string.Empty, LogLevel.Info, LogLevel.Fatal);
|
||||
#endif
|
||||
}
|
||||
|
||||
private static Logger GetLogger(string logFilePath, string logType, string logName, LogLevel minLevel, LogLevel maxLevel)
|
||||
|
|
|
|||
|
|
@ -266,6 +266,12 @@
|
|||
<setting name="DiscordBotStatusCheckTime" serializeAs="String">
|
||||
<value>10</value>
|
||||
</setting>
|
||||
<setting name="ServerCallUrlFormat" serializeAs="String">
|
||||
<value>http://servermanagers.azurewebsites.net/api/server/call/{0}/{1}/</value>
|
||||
</setting>
|
||||
<setting name="ServerCallUrlDelay" serializeAs="String">
|
||||
<value>12</value>
|
||||
</setting>
|
||||
</ServerManagerTool.Config>
|
||||
<ServerManagerTool.Common.CommonConfig>
|
||||
<setting name="DefaultSteamAPIKey" serializeAs="String">
|
||||
|
|
@ -636,6 +642,9 @@
|
|||
<setting name="LoggingMaxArchiveDays" serializeAs="String">
|
||||
<value>30</value>
|
||||
</setting>
|
||||
<setting name="ServerCallUrlLast" serializeAs="String">
|
||||
<value>2000-01-01</value>
|
||||
</setting>
|
||||
</ServerManagerTool.Config>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
|
|
@ -195,6 +195,20 @@ namespace ServerManagerTool
|
|||
}
|
||||
}
|
||||
|
||||
private async Task CallHomeAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var publicIP = await NetworkUtils.DiscoverPublicIPAsync();
|
||||
var url = new Uri(string.Format(Config.Default.ServerCallUrlFormat, Config.Default.ServerManagerCode, publicIP));
|
||||
await NetworkUtils.PerformCallToAPIAsync(url);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.WriteLine($"Failed calling home to API.\r\n{ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
public static void DiscoverMachinePublicIP(bool forceOverride)
|
||||
{
|
||||
if (forceOverride || string.IsNullOrWhiteSpace(Config.Default.MachinePublicIP))
|
||||
|
|
@ -498,6 +512,14 @@ namespace ServerManagerTool
|
|||
{
|
||||
StartDiscordBot();
|
||||
}
|
||||
|
||||
if (Config.Default.ServerCallUrlLast.AddHours(Config.Default.ServerCallUrlDelay) < DateTime.Now)
|
||||
{
|
||||
CallHomeAsync().DoNotWait();
|
||||
|
||||
Config.Default.ServerCallUrlLast = DateTime.Now;
|
||||
Config.Default.Save();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnExit(ExitEventArgs e)
|
||||
|
|
@ -527,8 +549,7 @@ namespace ServerManagerTool
|
|||
|
||||
LogManager.Configuration.Variables["logDir"] = logDir;
|
||||
|
||||
var fileTargets = LogManager.Configuration.AllTargets.OfType<FileTarget>();
|
||||
foreach (var fileTarget in fileTargets)
|
||||
foreach (var fileTarget in LogManager.Configuration.AllTargets.OfType<FileTarget>())
|
||||
{
|
||||
var fileName = Path.GetFileNameWithoutExtension(fileTarget.FileName.ToString());
|
||||
fileTarget.FileName = Path.Combine(logDir, $"{fileName}.log");
|
||||
|
|
|
|||
30
src/ConanServerManager/Config.Designer.cs
generated
30
src/ConanServerManager/Config.Designer.cs
generated
|
|
@ -2231,5 +2231,35 @@ namespace ServerManagerTool {
|
|||
this["LoggingMaxArchiveDays"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("http://servermanagers.azurewebsites.net/api/server/call/{0}/{1}/")]
|
||||
public string ServerCallUrlFormat {
|
||||
get {
|
||||
return ((string)(this["ServerCallUrlFormat"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("12")]
|
||||
public int ServerCallUrlDelay {
|
||||
get {
|
||||
return ((int)(this["ServerCallUrlDelay"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("2000-01-01")]
|
||||
public global::System.DateTime ServerCallUrlLast {
|
||||
get {
|
||||
return ((global::System.DateTime)(this["ServerCallUrlLast"]));
|
||||
}
|
||||
set {
|
||||
this["ServerCallUrlLast"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -614,5 +614,14 @@
|
|||
<Setting Name="LoggingMaxArchiveDays" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">30</Value>
|
||||
</Setting>
|
||||
<Setting Name="ServerCallUrlFormat" Type="System.String" Scope="Application">
|
||||
<Value Profile="(Default)">http://servermanagers.azurewebsites.net/api/server/call/{0}/{1}/</Value>
|
||||
</Setting>
|
||||
<Setting Name="ServerCallUrlDelay" Type="System.Int32" Scope="Application">
|
||||
<Value Profile="(Default)">12</Value>
|
||||
</Setting>
|
||||
<Setting Name="ServerCallUrlLast" Type="System.DateTime" Scope="User">
|
||||
<Value Profile="(Default)">2000-01-01</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
|
|
@ -2109,7 +2109,11 @@ namespace ServerManagerTool.Lib
|
|||
|
||||
private static Logger GetLogger(string logFilePath, string logType, string logName)
|
||||
{
|
||||
#if DEBUG
|
||||
return GetLogger(logFilePath, logType, logName ?? string.Empty, LogLevel.Debug, LogLevel.Fatal);
|
||||
#else
|
||||
return GetLogger(logFilePath, logType, logName ?? string.Empty, LogLevel.Info, LogLevel.Fatal);
|
||||
#endif
|
||||
}
|
||||
|
||||
private static Logger GetLogger(string logFilePath, string logType, string logName, LogLevel minLevel, LogLevel maxLevel)
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ namespace ServerManagerTool.Common.Utils
|
|||
}
|
||||
}
|
||||
|
||||
public static async Task PerformServerCallToAPI(Uri uri, IPEndPoint endpoint)
|
||||
public static async Task PerformCallToAPIAsync(Uri uri)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
|
@ -179,7 +179,7 @@ namespace ServerManagerTool.Common.Utils
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Debug($"{nameof(PerformServerCallToAPI)} - Failed calling API for: {endpoint.Address}:{endpoint.Port}. {ex.Message}");
|
||||
_logger.Debug($"{nameof(PerformCallToAPIAsync)} - Failed calling API.\r\n{ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue