aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Util.cs
diff options
context:
space:
mode:
authorDiva Canto2010-02-22 09:56:33 -0800
committerDiva Canto2010-02-22 09:56:33 -0800
commitde91a9e09bbb6c41eeb022540ae08952f413fb12 (patch)
treef4a40f7999f9c55661162b2764c883f764597973 /OpenSim/Framework/Util.cs
parentDeleted duplicate [GridService] section. (diff)
parentMerge branch 'master' into presence-refactor (diff)
downloadopensim-SC-de91a9e09bbb6c41eeb022540ae08952f413fb12.zip
opensim-SC-de91a9e09bbb6c41eeb022540ae08952f413fb12.tar.gz
opensim-SC-de91a9e09bbb6c41eeb022540ae08952f413fb12.tar.bz2
opensim-SC-de91a9e09bbb6c41eeb022540ae08952f413fb12.tar.xz
Merge branch 'presence-refactor' of ssh://diva@opensimulator.org/var/git/opensim into presence-refactor
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 2fc7adc..10af925 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;