diff options
author | mingchen | 2007-07-06 20:40:03 +0000 |
---|---|---|
committer | mingchen | 2007-07-06 20:40:03 +0000 |
commit | bc02ddf5231d7731af33cc0aa5dc914cbdeb5ee7 (patch) | |
tree | c2034371669c04d1130b6ed0d7309855f2860d8d /OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | |
parent | *Fixed 2 small references to localhost which has some conflicts when resolving. (diff) | |
download | opensim-SC_OLD-bc02ddf5231d7731af33cc0aa5dc914cbdeb5ee7.zip opensim-SC_OLD-bc02ddf5231d7731af33cc0aa5dc914cbdeb5ee7.tar.gz opensim-SC_OLD-bc02ddf5231d7731af33cc0aa5dc914cbdeb5ee7.tar.bz2 opensim-SC_OLD-bc02ddf5231d7731af33cc0aa5dc914cbdeb5ee7.tar.xz |
*Fixed several bugs that crashed the viewer and opensim server when logging in on grid mode
*Note: Grid Mode now works in sugilite, but is still unstable
**Known bug in which the grid server crashes after being relaunched from a previously create configuration
**Crashing of the viewer crashes the OpenSim server which then crashes the grid server -- needs better handling of exceptions
**Multiple sims is still untested, but should connect correctly. Moving between the sims may be a different story
Diffstat (limited to 'OpenSim/Region/Communications/OGS1/OGS1GridServices.cs')
-rw-r--r-- | OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs index 4d93cc9..b7d62ed 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | |||
@@ -83,26 +83,29 @@ namespace OpenSim.Region.Communications.OGS1 | |||
83 | 83 | ||
84 | List<RegionInfo> neighbours = new List<RegionInfo>(); | 84 | List<RegionInfo> neighbours = new List<RegionInfo>(); |
85 | 85 | ||
86 | foreach (Hashtable n in (Hashtable)respData.Values) | 86 | foreach (ArrayList a in respData.Values) |
87 | { | 87 | { |
88 | string internalIpStr = (string)n["sim_ip"]; | 88 | foreach (Hashtable n in a) |
89 | int port = (int)n["sim_port"]; | 89 | { |
90 | string externalUri = (string)n["sim_uri"]; | 90 | string internalIpStr = (string)n["sim_ip"]; |
91 | 91 | int port = (int)n["sim_port"]; | |
92 | IPEndPoint neighbourInternalEndPoint = new IPEndPoint( IPAddress.Parse( internalIpStr ), port); | 92 | string externalUri = (string)n["sim_uri"]; |
93 | string neighbourExternalUri = externalUri; | ||
94 | 93 | ||
95 | RegionInfo neighbour = new RegionInfo((uint)n["x"], (uint)n["y"], neighbourInternalEndPoint, neighbourExternalUri ); | 94 | IPEndPoint neighbourInternalEndPoint = new IPEndPoint(IPAddress.Parse(internalIpStr), port); |
95 | string neighbourExternalUri = externalUri; | ||
96 | 96 | ||
97 | //OGS1 | 97 | RegionInfo neighbour = new RegionInfo((uint)n["x"], (uint)n["y"], neighbourInternalEndPoint, neighbourExternalUri); |
98 | //neighbour.RegionHandle = (ulong)n["regionhandle"]; is now calculated locally | ||
99 | 98 | ||
100 | neighbour.RegionName = (string)n["name"]; | 99 | //OGS1 |
100 | //neighbour.RegionHandle = (ulong)n["regionhandle"]; is now calculated locally | ||
101 | 101 | ||
102 | //OGS1+ | 102 | neighbour.RegionName = (string)n["name"]; |
103 | neighbour.SimUUID = (string)n["uuid"]; | ||
104 | 103 | ||
105 | neighbours.Add(neighbour); | 104 | //OGS1+ |
105 | neighbour.SimUUID = (string)n["uuid"]; | ||
106 | |||
107 | neighbours.Add(neighbour); | ||
108 | } | ||
106 | } | 109 | } |
107 | 110 | ||
108 | return neighbours; | 111 | return neighbours; |