aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Communications/OGS1
diff options
context:
space:
mode:
authormingchen2007-07-06 20:40:03 +0000
committermingchen2007-07-06 20:40:03 +0000
commitbc02ddf5231d7731af33cc0aa5dc914cbdeb5ee7 (patch)
treec2034371669c04d1130b6ed0d7309855f2860d8d /OpenSim/Region/Communications/OGS1
parent*Fixed 2 small references to localhost which has some conflicts when resolving. (diff)
downloadopensim-SC-bc02ddf5231d7731af33cc0aa5dc914cbdeb5ee7.zip
opensim-SC-bc02ddf5231d7731af33cc0aa5dc914cbdeb5ee7.tar.gz
opensim-SC-bc02ddf5231d7731af33cc0aa5dc914cbdeb5ee7.tar.bz2
opensim-SC-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')
-rw-r--r--OpenSim/Region/Communications/OGS1/OGS1GridServices.cs31
-rw-r--r--OpenSim/Region/Communications/OGS1/OGS1UserServices.cs5
2 files changed, 20 insertions, 16 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;
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
index 7c7db03..3a3bccb 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
@@ -35,8 +35,9 @@ namespace OpenSim.Region.Communications.OGS1
35 userData.profileWantDoMask = Convert.ToUInt32(data["profile_want_do"]); 35 userData.profileWantDoMask = Convert.ToUInt32(data["profile_want_do"]);
36 userData.profileImage = new LLUUID((string)data["profile_image"]); 36 userData.profileImage = new LLUUID((string)data["profile_image"]);
37 userData.lastLogin = Convert.ToInt32((string)data["profile_lastlogin"]); 37 userData.lastLogin = Convert.ToInt32((string)data["profile_lastlogin"]);
38 userData.homeLocation = new LLVector3(); 38 userData.homeRegion = Convert.ToUInt64((string)data["home_region"]);
39 userData.homeLookAt = new LLVector3(); 39 userData.homeLocation = new LLVector3((float)Convert.ToDecimal((string)data["home_coordinates_x"]), (float)Convert.ToDecimal((string)data["home_coordinates_y"]), (float)Convert.ToDecimal((string)data["home_coordinates_z"]));
40 userData.homeLookAt = new LLVector3((float)Convert.ToDecimal((string)data["home_look_x"]), (float)Convert.ToDecimal((string)data["home_look_y"]), (float)Convert.ToDecimal((string)data["home_look_z"]));
40 41
41 return userData; 42 return userData;
42 } 43 }