aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2010-02-18 04:19:33 +0000
committerMelanie2010-02-18 04:19:33 +0000
commit842b68eeff7571d3c82415c65065bec3c95f34ea (patch)
tree5980e497c3f3fc5acb9bd549e4b050268a92f2b4 /OpenSim
parentRevert "change "SYSTEMIP" to "localhost" in the create region console command... (diff)
downloadopensim-SC-842b68eeff7571d3c82415c65065bec3c95f34ea.zip
opensim-SC-842b68eeff7571d3c82415c65065bec3c95f34ea.tar.gz
opensim-SC-842b68eeff7571d3c82415c65065bec3c95f34ea.tar.bz2
opensim-SC-842b68eeff7571d3c82415c65065bec3c95f34ea.tar.xz
Change handling of the SYSTEMIP constant to be more sane.
This will now choose the first network interface IP address, or the loopback interface if no external interfaces are found. It will log the IP address used as [NETWORK]: Using x.x.x.x for SYSTEMIP.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Framework/RegionInfo.cs1
-rw-r--r--OpenSim/Framework/Util.cs18
-rwxr-xr-xOpenSim/Region/Application/OpenSim.cs2
3 files changed, 14 insertions, 7 deletions
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
index 88b62e0..baef32a 100644
--- a/OpenSim/Framework/RegionInfo.cs
+++ b/OpenSim/Framework/RegionInfo.cs
@@ -487,7 +487,6 @@ namespace OpenSim.Framework
487 else 487 else
488 m_externalHostName = externalName; 488 m_externalHostName = externalName;
489 489
490
491 // Master avatar cruft 490 // Master avatar cruft
492 // 491 //
493 string masterAvatarUUID; 492 string masterAvatarUUID;
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 7215086..48435cb 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -589,11 +589,17 @@ namespace OpenSim.Framework
589 589
590 public static IPAddress GetLocalHost() 590 public static IPAddress GetLocalHost()
591 { 591 {
592 string dnsAddress = "localhost"; 592 IPAddress[] iplist = GetLocalHosts();
593 593
594 IPAddress[] hosts = Dns.GetHostEntry(dnsAddress).AddressList; 594 if (iplist.Length == 0) // No accessible external interfaces
595 {
596 IPAddress[] loopback = Dns.GetHostAddresses("localhost");
597 IPAddress localhost = loopback[0];
595 598
596 foreach (IPAddress host in hosts) 599 return localhost;
600 }
601
602 foreach (IPAddress host in iplist)
597 { 603 {
598 if (!IPAddress.IsLoopback(host) && host.AddressFamily == AddressFamily.InterNetwork) 604 if (!IPAddress.IsLoopback(host) && host.AddressFamily == AddressFamily.InterNetwork)
599 { 605 {
@@ -601,15 +607,15 @@ namespace OpenSim.Framework
601 } 607 }
602 } 608 }
603 609
604 if (hosts.Length > 0) 610 if (iplist.Length > 0)
605 { 611 {
606 foreach (IPAddress host in hosts) 612 foreach (IPAddress host in iplist)
607 { 613 {
608 if (host.AddressFamily == AddressFamily.InterNetwork) 614 if (host.AddressFamily == AddressFamily.InterNetwork)
609 return host; 615 return host;
610 } 616 }
611 // Well all else failed... 617 // Well all else failed...
612 return hosts[0]; 618 return iplist[0];
613 } 619 }
614 620
615 return null; 621 return null;
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index 96eceb0..05e283e 100755
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -190,6 +190,8 @@ namespace OpenSim
190 190
191 PrintFileToConsole("startuplogo.txt"); 191 PrintFileToConsole("startuplogo.txt");
192 192
193 m_log.InfoFormat("[NETWORK]: Using {0} as SYSTEMIP", Util.GetLocalHost().ToString());
194
193 // For now, start at the 'root' level by default 195 // For now, start at the 'root' level by default
194 if (m_sceneManager.Scenes.Count == 1) // If there is only one region, select it 196 if (m_sceneManager.Scenes.Count == 1) // If there is only one region, select it
195 ChangeSelectedRegion("region", 197 ChangeSelectedRegion("region",