aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Connectors/Hypergrid
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs23
-rw-r--r--OpenSim/Services/Connectors/Hypergrid/HGFriendsServicesConnector.cs5
-rw-r--r--OpenSim/Services/Connectors/Hypergrid/HeloServicesConnector.cs2
-rw-r--r--OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs30
4 files changed, 41 insertions, 19 deletions
diff --git a/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs
index b1663ee..e814c45 100644
--- a/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs
@@ -73,13 +73,15 @@ namespace OpenSim.Services.Connectors.Hypergrid
73 return "foreignobject/"; 73 return "foreignobject/";
74 } 74 }
75 75
76 public bool LinkRegion(GridRegion info, out UUID regionID, out ulong realHandle, out string externalName, out string imageURL, out string reason) 76 public bool LinkRegion(GridRegion info, out UUID regionID, out ulong realHandle, out string externalName, out string imageURL, out string reason, out int sizeX, out int sizeY)
77 { 77 {
78 regionID = UUID.Zero; 78 regionID = UUID.Zero;
79 imageURL = string.Empty; 79 imageURL = string.Empty;
80 realHandle = 0; 80 realHandle = 0;
81 externalName = string.Empty; 81 externalName = string.Empty;
82 reason = string.Empty; 82 reason = string.Empty;
83 sizeX = (int)Constants.RegionSize;
84 sizeY = (int)Constants.RegionSize;
83 85
84 Hashtable hash = new Hashtable(); 86 Hashtable hash = new Hashtable();
85 hash["region_name"] = info.RegionName; 87 hash["region_name"] = info.RegionName;
@@ -134,8 +136,15 @@ namespace OpenSim.Services.Connectors.Hypergrid
134 externalName = (string)hash["external_name"]; 136 externalName = (string)hash["external_name"];
135 //m_log.Debug(">> HERE, externalName: " + externalName); 137 //m_log.Debug(">> HERE, externalName: " + externalName);
136 } 138 }
139 if (hash["size_x"] != null)
140 {
141 Int32.TryParse((string)hash["size_x"], out sizeX);
142 }
143 if (hash["size_y"] != null)
144 {
145 Int32.TryParse((string)hash["size_y"], out sizeY);
146 }
137 } 147 }
138
139 } 148 }
140 catch (Exception e) 149 catch (Exception e)
141 { 150 {
@@ -160,14 +169,15 @@ namespace OpenSim.Services.Connectors.Hypergrid
160 169
161 try 170 try
162 { 171 {
163 WebClient c = new WebClient(); 172 //m_log.Debug("JPEG: " + imageURL);
164 string name = regionID.ToString(); 173 string name = regionID.ToString();
165 filename = Path.Combine(storagePath, name + ".jpg"); 174 filename = Path.Combine(storagePath, name + ".jpg");
166 m_log.DebugFormat("[GATEKEEPER SERVICE CONNECTOR]: Map image at {0}, cached at {1}", imageURL, filename); 175 m_log.DebugFormat("[GATEKEEPER SERVICE CONNECTOR]: Map image at {0}, cached at {1}", imageURL, filename);
167 if (!File.Exists(filename)) 176 if (!File.Exists(filename))
168 { 177 {
169 m_log.DebugFormat("[GATEKEEPER SERVICE CONNECTOR]: downloading..."); 178 m_log.DebugFormat("[GATEKEEPER SERVICE CONNECTOR]: downloading...");
170 c.DownloadFile(imageURL, filename); 179 using(WebClient c = new WebClient())
180 c.DownloadFile(imageURL, filename);
171 } 181 }
172 else 182 else
173 { 183 {
@@ -189,11 +199,10 @@ namespace OpenSim.Services.Connectors.Hypergrid
189 199
190 ass.Data = imageData; 200 ass.Data = imageData;
191 201
192 mapTile = ass.FullID;
193
194 // finally
195 m_AssetService.Store(ass); 202 m_AssetService.Store(ass);
196 203
204 // finally
205 mapTile = ass.FullID;
197 } 206 }
198 catch // LEGIT: Catching problems caused by OpenJPEG p/invoke 207 catch // LEGIT: Catching problems caused by OpenJPEG p/invoke
199 { 208 {
diff --git a/OpenSim/Services/Connectors/Hypergrid/HGFriendsServicesConnector.cs b/OpenSim/Services/Connectors/Hypergrid/HGFriendsServicesConnector.cs
index 622d4e1..8b31fa2 100644
--- a/OpenSim/Services/Connectors/Hypergrid/HGFriendsServicesConnector.cs
+++ b/OpenSim/Services/Connectors/Hypergrid/HGFriendsServicesConnector.cs
@@ -277,7 +277,10 @@ namespace OpenSim.Services.Connectors.Hypergrid
277 { 277 {
278 reply = SynchronousRestFormsRequester.MakeRequest("POST", 278 reply = SynchronousRestFormsRequester.MakeRequest("POST",
279 uri, 279 uri,
280 ServerUtils.BuildQueryString(sendData), 15); 280 ServerUtils.BuildQueryString(sendData),
281 15,
282 null,
283 false);
281 } 284 }
282 catch (Exception e) 285 catch (Exception e)
283 { 286 {
diff --git a/OpenSim/Services/Connectors/Hypergrid/HeloServicesConnector.cs b/OpenSim/Services/Connectors/Hypergrid/HeloServicesConnector.cs
index b5e6d69..91e1740 100644
--- a/OpenSim/Services/Connectors/Hypergrid/HeloServicesConnector.cs
+++ b/OpenSim/Services/Connectors/Hypergrid/HeloServicesConnector.cs
@@ -33,7 +33,7 @@ using Nini.Config;
33 33
34namespace OpenSim.Services.Connectors 34namespace OpenSim.Services.Connectors
35{ 35{
36 public class HeloServicesConnector 36 public class HeloServicesConnector
37 { 37 {
38 private static readonly ILog m_log = 38 private static readonly ILog m_log =
39 LogManager.GetLogger( 39 LogManager.GetLogger(
diff --git a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
index 8abd046..f2bb52a 100644
--- a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
@@ -70,9 +70,14 @@ namespace OpenSim.Services.Connectors.Hypergrid
70 { 70 {
71 Uri m_Uri = new Uri(m_ServerURL); 71 Uri m_Uri = new Uri(m_ServerURL);
72 IPAddress ip = Util.GetHostFromDNS(m_Uri.Host); 72 IPAddress ip = Util.GetHostFromDNS(m_Uri.Host);
73 m_ServerURL = m_ServerURL.Replace(m_Uri.Host, ip.ToString()); 73 if(ip != null)
74 if (!m_ServerURL.EndsWith("/")) 74 {
75 m_ServerURL += "/"; 75 m_ServerURL = m_ServerURL.Replace(m_Uri.Host, ip.ToString());
76 if (!m_ServerURL.EndsWith("/"))
77 m_ServerURL += "/";
78 }
79 else
80 m_log.DebugFormat("[USER AGENT CONNECTOR]: Failed to resolv address of {0}", url);
76 } 81 }
77 catch (Exception e) 82 catch (Exception e)
78 { 83 {
@@ -113,7 +118,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
113 return "homeagent/"; 118 return "homeagent/";
114 } 119 }
115 120
116 // The Login service calls this interface with fromLogin=true 121 // The Login service calls this interface with fromLogin=true
117 // Sims call it with fromLogin=false 122 // Sims call it with fromLogin=false
118 // Either way, this is verified by the handler 123 // Either way, this is verified by the handler
119 public bool LoginAgentToGrid(GridRegion source, AgentCircuitData aCircuit, GridRegion gatekeeper, GridRegion destination, bool fromLogin, out string reason) 124 public bool LoginAgentToGrid(GridRegion source, AgentCircuitData aCircuit, GridRegion gatekeeper, GridRegion destination, bool fromLogin, out string reason)
@@ -138,7 +143,8 @@ namespace OpenSim.Services.Connectors.Hypergrid
138 Console.WriteLine(" >>> LoginAgentToGrid <<< " + home.ServerURI); 143 Console.WriteLine(" >>> LoginAgentToGrid <<< " + home.ServerURI);
139 144
140 uint flags = fromLogin ? (uint)TeleportFlags.ViaLogin : (uint)TeleportFlags.ViaHome; 145 uint flags = fromLogin ? (uint)TeleportFlags.ViaLogin : (uint)TeleportFlags.ViaHome;
141 return CreateAgent(source, home, aCircuit, flags, out reason); 146 EntityTransferContext ctx = new EntityTransferContext();
147 return CreateAgent(source, home, aCircuit, flags, ctx, out reason);
142 } 148 }
143 149
144 150
@@ -158,7 +164,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
158 } 164 }
159 165
160 public void SetClientToken(UUID sessionID, string token) 166 public void SetClientToken(UUID sessionID, string token)
161 { 167 {
162 // no-op 168 // no-op
163 } 169 }
164 170
@@ -415,7 +421,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
415 421
416 XmlRpcRequest request = new XmlRpcRequest("get_online_friends", paramList); 422 XmlRpcRequest request = new XmlRpcRequest("get_online_friends", paramList);
417// string reason = string.Empty; 423// string reason = string.Empty;
418 424
419 // Send and get reply 425 // Send and get reply
420 List<UUID> online = new List<UUID>(); 426 List<UUID> online = new List<UUID>();
421 XmlRpcResponse response = null; 427 XmlRpcResponse response = null;
@@ -496,7 +502,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
496 hash["userID"] = userID.ToString(); 502 hash["userID"] = userID.ToString();
497 503
498 hash = CallServer("get_server_urls", hash); 504 hash = CallServer("get_server_urls", hash);
499 505
500 Dictionary<string, object> serverURLs = new Dictionary<string, object>(); 506 Dictionary<string, object> serverURLs = new Dictionary<string, object>();
501 foreach (object key in hash.Keys) 507 foreach (object key in hash.Keys)
502 { 508 {
@@ -515,7 +521,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
515 Hashtable hash = new Hashtable(); 521 Hashtable hash = new Hashtable();
516 hash["userID"] = userID.ToString(); 522 hash["userID"] = userID.ToString();
517 523
518 hash = CallServer("locate_user", hash); 524 hash = CallServer("locate_user", hash);
519 525
520 string url = string.Empty; 526 string url = string.Empty;
521 527
@@ -571,7 +577,11 @@ namespace OpenSim.Services.Connectors.Hypergrid
571 XmlRpcResponse response = null; 577 XmlRpcResponse response = null;
572 try 578 try
573 { 579 {
574 response = request.Send(m_ServerURL, 10000); 580 // We can not use m_ServerURL here anymore because it causes
581 // the HTTP request to be built without a host name. This messes
582 // with OSGrid's NGINX and can make OSGrid avatars unable to TP
583 // to other grids running recent mono.
584 response = request.Send(m_ServerURLHost, 10000);
575 } 585 }
576 catch (Exception e) 586 catch (Exception e)
577 { 587 {