diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Services/Connectors/Land/LandServicesConnector.cs | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/OpenSim/Services/Connectors/Land/LandServicesConnector.cs b/OpenSim/Services/Connectors/Land/LandServicesConnector.cs index 7839a68..5e9331e 100644 --- a/OpenSim/Services/Connectors/Land/LandServicesConnector.cs +++ b/OpenSim/Services/Connectors/Land/LandServicesConnector.cs | |||
@@ -66,22 +66,31 @@ namespace OpenSim.Services.Connectors | |||
66 | public virtual LandData GetLandData(UUID scopeID, ulong regionHandle, uint x, uint y, out byte regionAccess) | 66 | public virtual LandData GetLandData(UUID scopeID, ulong regionHandle, uint x, uint y, out byte regionAccess) |
67 | { | 67 | { |
68 | LandData landData = null; | 68 | LandData landData = null; |
69 | Hashtable hash = new Hashtable(); | ||
70 | hash["region_handle"] = regionHandle.ToString(); | ||
71 | hash["x"] = x.ToString(); | ||
72 | hash["y"] = y.ToString(); | ||
73 | 69 | ||
74 | IList paramList = new ArrayList(); | 70 | IList paramList = new ArrayList(); |
75 | paramList.Add(hash); | ||
76 | regionAccess = 42; // Default to adult. Better safe... | 71 | regionAccess = 42; // Default to adult. Better safe... |
77 | 72 | ||
78 | try | 73 | try |
79 | { | 74 | { |
80 | uint xpos = 0, ypos = 0; | 75 | uint xpos = 0, ypos = 0; |
81 | Util.RegionHandleToWorldLoc(regionHandle, out xpos, out ypos); | 76 | Util.RegionHandleToWorldLoc(regionHandle, out xpos, out ypos); |
77 | |||
82 | GridRegion info = m_GridService.GetRegionByPosition(scopeID, (int)xpos, (int)ypos); | 78 | GridRegion info = m_GridService.GetRegionByPosition(scopeID, (int)xpos, (int)ypos); |
83 | if (info != null) // just to be sure | 79 | if (info != null) // just to be sure |
84 | { | 80 | { |
81 | string targetHandlestr = info.RegionHandle.ToString(); | ||
82 | if( ypos == 0 ) //HG proxy? | ||
83 | { | ||
84 | // this is real region handle on hg proxies hack | ||
85 | targetHandlestr = info.RegionSecret; | ||
86 | } | ||
87 | |||
88 | Hashtable hash = new Hashtable(); | ||
89 | hash["region_handle"] = targetHandlestr; | ||
90 | hash["x"] = x.ToString(); | ||
91 | hash["y"] = y.ToString(); | ||
92 | paramList.Add(hash); | ||
93 | |||
85 | XmlRpcRequest request = new XmlRpcRequest("land_data", paramList); | 94 | XmlRpcRequest request = new XmlRpcRequest("land_data", paramList); |
86 | XmlRpcResponse response = request.Send(info.ServerURI, 10000); | 95 | XmlRpcResponse response = request.Send(info.ServerURI, 10000); |
87 | if (response.IsFault) | 96 | if (response.IsFault) |