Fixed a potential scrurity vulnerability while also fixing the host tab being slow. yay for async methods!

This commit is contained in:
Bitl 2020-03-16 11:39:58 -07:00
parent ea806050c6
commit e93a3e422a
4 changed files with 14 additions and 8 deletions

View File

@ -189,7 +189,6 @@ namespace NovetusCMD
public static void Main(string[] args) public static void Main(string[] args)
{ {
GlobalVars.PublicIP = SecurityFuncs.GetExternalIPAddress();
string[] lines = File.ReadAllLines(GlobalVars.ConfigDir + "\\info.txt"); //File is in System.IO string[] lines = File.ReadAllLines(GlobalVars.ConfigDir + "\\info.txt"); //File is in System.IO
string version = lines[0]; string version = lines[0];
GlobalVars.DefaultClient = lines[1]; GlobalVars.DefaultClient = lines[1];
@ -414,11 +413,11 @@ namespace NovetusCMD
Environment.Exit(0); Environment.Exit(0);
} }
static void CreateTXT() static async void CreateTXT()
{ {
if (LocalVars.RequestToOutputInfo) if (LocalVars.RequestToOutputInfo)
{ {
string IP = GlobalVars.PublicIP; string IP = await SecurityFuncs.GetExternalIPAddressAsync();
string[] lines1 = { string[] lines1 = {
SecurityFuncs.Base64Encode(IP), SecurityFuncs.Base64Encode(IP),
SecurityFuncs.Base64Encode(GlobalVars.RobloxPort.ToString()), SecurityFuncs.Base64Encode(GlobalVars.RobloxPort.ToString()),

View File

@ -130,7 +130,6 @@ public static class GlobalVars
public static AssetCacheDef ItemPantsTexture { get { return new AssetCacheDef("Pants", new string[] { "PantsTemplate" }, new string[] { ".png" }, new string[] { pantsdirTextures }, new string[] { pantsGameDirTextures }); } } public static AssetCacheDef ItemPantsTexture { get { return new AssetCacheDef("Pants", new string[] { "PantsTemplate" }, new string[] { ".png" }, new string[] { pantsdirTextures }, new string[] { pantsGameDirTextures }); } }
public static string IP = "localhost"; public static string IP = "localhost";
public static string PublicIP = "";
public static string Version = ""; public static string Version = "";
public static string SharedArgs = ""; public static string SharedArgs = "";
public static readonly string ScriptName = "CSMPFunctions"; public static readonly string ScriptName = "CSMPFunctions";

View File

@ -19,6 +19,7 @@ using System.Security.Principal;
using System.Linq; using System.Linq;
using System.ComponentModel; using System.ComponentModel;
using System.Net; using System.Net;
using System.Threading.Tasks;
/// <summary> /// <summary>
/// Description of SecurityFuncs. /// Description of SecurityFuncs.
@ -206,4 +207,10 @@ public class SecurityFuncs
return ipAddress; return ipAddress;
} }
public static async Task<string> GetExternalIPAddressAsync()
{
var task = Task.Run(() => GetExternalIPAddress());
return await task;
}
} }

View File

@ -206,12 +206,12 @@ namespace NovetusLauncher
ConsolePrint("WebServer: Failed to stop WebServer. Some features may not function. (Did not run as Administrator)", 2); ConsolePrint("WebServer: Failed to stop WebServer. Some features may not function. (Did not run as Administrator)", 2);
} }
} }
void tabControl1_SelectedIndexChanged(object sender, EventArgs e) async void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{ {
if (tabControl1.SelectedTab == tabControl1.TabPages["tabPage2"])//your specific tabname if (tabControl1.SelectedTab == tabControl1.TabPages["tabPage2"])//your specific tabname
{ {
string IP = GlobalVars.PublicIP; string IP = await SecurityFuncs.GetExternalIPAddressAsync();
string[] lines1 = { string[] lines1 = {
SecurityFuncs.Base64Encode(IP), SecurityFuncs.Base64Encode(IP),
SecurityFuncs.Base64Encode(GlobalVars.RobloxPort.ToString()), SecurityFuncs.Base64Encode(GlobalVars.RobloxPort.ToString()),
@ -249,6 +249,8 @@ namespace NovetusLauncher
textBox3.AppendText(Environment.NewLine); textBox3.AppendText(Environment.NewLine);
} }
} }
textBox3.SelectionStart = 0;
textBox3.ScrollToCaret();
treeView1.Nodes.Clear(); treeView1.Nodes.Clear();
_fieldsTreeCache.Nodes.Clear(); _fieldsTreeCache.Nodes.Clear();
textBox4.Text = ""; textBox4.Text = "";
@ -355,7 +357,6 @@ namespace NovetusLauncher
void MainFormLoad(object sender, EventArgs e) void MainFormLoad(object sender, EventArgs e)
{ {
GlobalVars.PublicIP = SecurityFuncs.GetExternalIPAddress();
string[] lines = File.ReadAllLines(GlobalVars.ConfigDir + "\\info.txt"); //File is in System.IO string[] lines = File.ReadAllLines(GlobalVars.ConfigDir + "\\info.txt"); //File is in System.IO
string version = lines[0]; string version = lines[0];
GlobalVars.DefaultClient = lines[1]; GlobalVars.DefaultClient = lines[1];