mirror of
https://github.com/tribufu/ServerManagers
synced 2026-06-01 09:42:39 +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">
|
<setting name="DiscordBotStatusCheckTime" serializeAs="String">
|
||||||
<value>10</value>
|
<value>10</value>
|
||||||
</setting>
|
</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.Config>
|
||||||
<ServerManagerTool.Common.CommonConfig>
|
<ServerManagerTool.Common.CommonConfig>
|
||||||
<setting name="DefaultSteamAPIKey" serializeAs="String">
|
<setting name="DefaultSteamAPIKey" serializeAs="String">
|
||||||
|
|
@ -861,6 +867,9 @@
|
||||||
<setting name="LoggingMaxArchiveDays" serializeAs="String">
|
<setting name="LoggingMaxArchiveDays" serializeAs="String">
|
||||||
<value>30</value>
|
<value>30</value>
|
||||||
</setting>
|
</setting>
|
||||||
|
<setting name="ServerCallUrlLast" serializeAs="String">
|
||||||
|
<value>2000-01-01</value>
|
||||||
|
</setting>
|
||||||
</ServerManagerTool.Config>
|
</ServerManagerTool.Config>
|
||||||
</userSettings>
|
</userSettings>
|
||||||
</configuration>
|
</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)
|
public static void DiscoverMachinePublicIP(bool forceOverride)
|
||||||
{
|
{
|
||||||
if (forceOverride || string.IsNullOrWhiteSpace(Config.Default.MachinePublicIP))
|
if (forceOverride || string.IsNullOrWhiteSpace(Config.Default.MachinePublicIP))
|
||||||
|
|
@ -509,6 +523,14 @@ namespace ServerManagerTool
|
||||||
{
|
{
|
||||||
StartDiscordBot();
|
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)
|
protected override void OnExit(ExitEventArgs e)
|
||||||
|
|
@ -538,8 +560,7 @@ namespace ServerManagerTool
|
||||||
|
|
||||||
LogManager.Configuration.Variables["logDir"] = logDir;
|
LogManager.Configuration.Variables["logDir"] = logDir;
|
||||||
|
|
||||||
var fileTargets = LogManager.Configuration.AllTargets.OfType<FileTarget>();
|
foreach (var fileTarget in LogManager.Configuration.AllTargets.OfType<FileTarget>())
|
||||||
foreach (var fileTarget in fileTargets)
|
|
||||||
{
|
{
|
||||||
var fileName = Path.GetFileNameWithoutExtension(fileTarget.FileName.ToString());
|
var fileName = Path.GetFileNameWithoutExtension(fileTarget.FileName.ToString());
|
||||||
fileTarget.FileName = Path.Combine(logDir, $"{fileName}.log");
|
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;
|
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">
|
<Setting Name="LoggingMaxArchiveDays" Type="System.Int32" Scope="User">
|
||||||
<Value Profile="(Default)">30</Value>
|
<Value Profile="(Default)">30</Value>
|
||||||
</Setting>
|
</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>
|
</Settings>
|
||||||
</SettingsFile>
|
</SettingsFile>
|
||||||
|
|
@ -2212,7 +2212,11 @@ namespace ServerManagerTool.Lib
|
||||||
|
|
||||||
private static Logger GetLogger(string logFilePath, string logType, string logName)
|
private static Logger GetLogger(string logFilePath, string logType, string logName)
|
||||||
{
|
{
|
||||||
|
#if DEBUG
|
||||||
return GetLogger(logFilePath, logType, logName ?? string.Empty, LogLevel.Debug, LogLevel.Fatal);
|
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)
|
private static Logger GetLogger(string logFilePath, string logType, string logName, LogLevel minLevel, LogLevel maxLevel)
|
||||||
|
|
|
||||||
|
|
@ -266,6 +266,12 @@
|
||||||
<setting name="DiscordBotStatusCheckTime" serializeAs="String">
|
<setting name="DiscordBotStatusCheckTime" serializeAs="String">
|
||||||
<value>10</value>
|
<value>10</value>
|
||||||
</setting>
|
</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.Config>
|
||||||
<ServerManagerTool.Common.CommonConfig>
|
<ServerManagerTool.Common.CommonConfig>
|
||||||
<setting name="DefaultSteamAPIKey" serializeAs="String">
|
<setting name="DefaultSteamAPIKey" serializeAs="String">
|
||||||
|
|
@ -636,6 +642,9 @@
|
||||||
<setting name="LoggingMaxArchiveDays" serializeAs="String">
|
<setting name="LoggingMaxArchiveDays" serializeAs="String">
|
||||||
<value>30</value>
|
<value>30</value>
|
||||||
</setting>
|
</setting>
|
||||||
|
<setting name="ServerCallUrlLast" serializeAs="String">
|
||||||
|
<value>2000-01-01</value>
|
||||||
|
</setting>
|
||||||
</ServerManagerTool.Config>
|
</ServerManagerTool.Config>
|
||||||
</userSettings>
|
</userSettings>
|
||||||
</configuration>
|
</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)
|
public static void DiscoverMachinePublicIP(bool forceOverride)
|
||||||
{
|
{
|
||||||
if (forceOverride || string.IsNullOrWhiteSpace(Config.Default.MachinePublicIP))
|
if (forceOverride || string.IsNullOrWhiteSpace(Config.Default.MachinePublicIP))
|
||||||
|
|
@ -498,6 +512,14 @@ namespace ServerManagerTool
|
||||||
{
|
{
|
||||||
StartDiscordBot();
|
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)
|
protected override void OnExit(ExitEventArgs e)
|
||||||
|
|
@ -527,8 +549,7 @@ namespace ServerManagerTool
|
||||||
|
|
||||||
LogManager.Configuration.Variables["logDir"] = logDir;
|
LogManager.Configuration.Variables["logDir"] = logDir;
|
||||||
|
|
||||||
var fileTargets = LogManager.Configuration.AllTargets.OfType<FileTarget>();
|
foreach (var fileTarget in LogManager.Configuration.AllTargets.OfType<FileTarget>())
|
||||||
foreach (var fileTarget in fileTargets)
|
|
||||||
{
|
{
|
||||||
var fileName = Path.GetFileNameWithoutExtension(fileTarget.FileName.ToString());
|
var fileName = Path.GetFileNameWithoutExtension(fileTarget.FileName.ToString());
|
||||||
fileTarget.FileName = Path.Combine(logDir, $"{fileName}.log");
|
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;
|
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">
|
<Setting Name="LoggingMaxArchiveDays" Type="System.Int32" Scope="User">
|
||||||
<Value Profile="(Default)">30</Value>
|
<Value Profile="(Default)">30</Value>
|
||||||
</Setting>
|
</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>
|
</Settings>
|
||||||
</SettingsFile>
|
</SettingsFile>
|
||||||
|
|
@ -2109,7 +2109,11 @@ namespace ServerManagerTool.Lib
|
||||||
|
|
||||||
private static Logger GetLogger(string logFilePath, string logType, string logName)
|
private static Logger GetLogger(string logFilePath, string logType, string logName)
|
||||||
{
|
{
|
||||||
|
#if DEBUG
|
||||||
return GetLogger(logFilePath, logType, logName ?? string.Empty, LogLevel.Debug, LogLevel.Fatal);
|
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)
|
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
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -179,7 +179,7 @@ namespace ServerManagerTool.Common.Utils
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
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