aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Util.cs
diff options
context:
space:
mode:
authorMelanie2010-03-06 12:24:09 +0000
committerMelanie2010-03-06 12:24:09 +0000
commit1f7a0cf892bf23c5b8ba8e3ae1a9036de428db90 (patch)
tree69419084feb98d59888b59a643e5fa062314605d /OpenSim/Framework/Util.cs
parentRemove a superfluous array creation (diff)
parent- implementing server 1.38 functions (diff)
downloadopensim-SC-1f7a0cf892bf23c5b8ba8e3ae1a9036de428db90.zip
opensim-SC-1f7a0cf892bf23c5b8ba8e3ae1a9036de428db90.tar.gz
opensim-SC-1f7a0cf892bf23c5b8ba8e3ae1a9036de428db90.tar.bz2
opensim-SC-1f7a0cf892bf23c5b8ba8e3ae1a9036de428db90.tar.xz
Merge branch '0.6.9-post-fixes' into careminster
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/Util.cs18
1 files changed, 12 insertions, 6 deletions
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 58a0d77..e20b322 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;