add patches
parent
b8fbd70e9d
commit
5f98d7c3cf
|
@ -0,0 +1,44 @@
|
||||||
|
From affb6e69909f26090497e8e3dae11544c269cd27 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christopher <git@clatza.dev>
|
||||||
|
Date: Fri, 18 Mar 2022 12:52:23 +0100
|
||||||
|
Subject: [PATCH] Add External Hostname == DYNDNSIP to call current external ip
|
||||||
|
from aws services
|
||||||
|
|
||||||
|
---
|
||||||
|
OpenSim/Framework/RegionInfo.cs | 20 ++++++++++++++++++++
|
||||||
|
1 file changed, 20 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
|
||||||
|
index 507c51852b..4282fe06c0 100755
|
||||||
|
--- a/OpenSim/Framework/RegionInfo.cs
|
||||||
|
+++ b/OpenSim/Framework/RegionInfo.cs
|
||||||
|
@@ -596,6 +596,26 @@ namespace OpenSim.Framework
|
||||||
|
m_log.InfoFormat(
|
||||||
|
"[REGIONINFO]: Resolving SYSTEMIP to {0} for external hostname of region {1}",
|
||||||
|
m_externalHostName, name);
|
||||||
|
+ }else if(externalName == "DYNDNSIP")
|
||||||
|
+ {
|
||||||
|
+ m_externalHostName = Util.GetLocalHost().ToString();
|
||||||
|
+
|
||||||
|
+ try
|
||||||
|
+ {
|
||||||
|
+ using (WebClient getIpClient = new WebClient())
|
||||||
|
+ {
|
||||||
|
+ m_externalHostName = getIpClient.DownloadString("http://checkip.amazonaws.com/");
|
||||||
|
+
|
||||||
|
+ m_log.InfoFormat(
|
||||||
|
+ "[REGIONINFO]: Resolving DYNDNSIP to {0} for region {1}",
|
||||||
|
+ m_externalHostName, name);
|
||||||
|
+ }
|
||||||
|
+ }catch(Exception error)
|
||||||
|
+ {
|
||||||
|
+ m_log.ErrorFormat(
|
||||||
|
+ "[REGIONINFO]: Resolving DYNDNSIP failed for region {0}: {1}",
|
||||||
|
+ name, error.Message);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
else if (!m_resolveAddress)
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.30.0.windows.2
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
From 7e58dc4db0838486a90fd8ee718b120ccd99f89b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christopher <git@clatza.dev>
|
||||||
|
Date: Fri, 18 Mar 2022 13:02:10 +0100
|
||||||
|
Subject: [PATCH] Add checking udp port available and use other port than
|
||||||
|
already in use.
|
||||||
|
|
||||||
|
---
|
||||||
|
OpenSim/Framework/RegionInfo.cs | 33 +++++++++++++++++++++++++++++++++
|
||||||
|
1 file changed, 33 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
|
||||||
|
index 4282fe06c0..79ca997ee5 100755
|
||||||
|
--- a/OpenSim/Framework/RegionInfo.cs
|
||||||
|
+++ b/OpenSim/Framework/RegionInfo.cs
|
||||||
|
@@ -36,6 +36,7 @@ using log4net;
|
||||||
|
using Nini.Config;
|
||||||
|
using OpenMetaverse;
|
||||||
|
using OpenMetaverse.StructuredData;
|
||||||
|
+using System.Net.NetworkInformation;
|
||||||
|
//using OpenSim.Framework.Console;
|
||||||
|
|
||||||
|
namespace OpenSim.Framework
|
||||||
|
@@ -560,6 +561,15 @@ namespace OpenSim.Framework
|
||||||
|
port = Convert.ToInt32(MainConsole.Instance.Prompt("Internal port", "9000"));
|
||||||
|
config.Set("InternalPort", port);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ if(!CheckAvailableServerPort(port))
|
||||||
|
+ {
|
||||||
|
+ while(!CheckAvailableServerPort(port))
|
||||||
|
+ {
|
||||||
|
+ port++;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
m_internalEndPoint = new IPEndPoint(address, port);
|
||||||
|
|
||||||
|
// ResolveAddress
|
||||||
|
@@ -699,6 +709,29 @@ namespace OpenSim.Framework
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ private bool CheckAvailableServerPort(int port)
|
||||||
|
+ {
|
||||||
|
+ bool isAvailable = true;
|
||||||
|
+
|
||||||
|
+ // Evaluate current system tcp connections. This is the same information provided
|
||||||
|
+ // by the netstat command line application, just in .Net strongly-typed object
|
||||||
|
+ // form. We will look through the list, and if our port we would like to use
|
||||||
|
+ // in our TcpClient is occupied, we will set isAvailable to false.
|
||||||
|
+ IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
|
||||||
|
+ IPEndPoint[] udpConnInfoArray = ipGlobalProperties.GetActiveUdpListeners();
|
||||||
|
+
|
||||||
|
+ foreach (IPEndPoint endpoint in udpConnInfoArray)
|
||||||
|
+ {
|
||||||
|
+ if (endpoint.Port == port)
|
||||||
|
+ {
|
||||||
|
+ isAvailable = false;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return isAvailable;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// Make sure DefaultLanding is within region borders with a buffer zone 5 meters from borders
|
||||||
|
private void DoDefaultLandingSanityChecks()
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.30.0.windows.2
|
||||||
|
|
Loading…
Reference in New Issue