aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/Connectors
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services/Connectors')
-rw-r--r--OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs55
-rw-r--r--OpenSim/Services/Connectors/Avatar/AvatarServiceConnector.cs2
-rw-r--r--OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs95
-rw-r--r--OpenSim/Services/Connectors/MapImage/MapImageServiceConnector.cs1
-rw-r--r--OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs2
-rw-r--r--OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs4
6 files changed, 99 insertions, 60 deletions
diff --git a/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs b/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
index 7db2a81..c753c6a 100644
--- a/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Asset/AssetServiceConnector.cs
@@ -51,7 +51,13 @@ namespace OpenSim.Services.Connectors
51 private int m_retryCounter; 51 private int m_retryCounter;
52 private Dictionary<int, List<AssetBase>> m_retryQueue = new Dictionary<int, List<AssetBase>>(); 52 private Dictionary<int, List<AssetBase>> m_retryQueue = new Dictionary<int, List<AssetBase>>();
53 private Timer m_retryTimer; 53 private Timer m_retryTimer;
54 private delegate void AssetRetrievedEx(AssetBase asset);
55
56 // Keeps track of concurrent requests for the same asset, so that it's only loaded once.
57 // Maps: Asset ID -> Handlers which will be called when the asset has been loaded
58 private Dictionary<string, AssetRetrievedEx> m_AssetHandlers = new Dictionary<string, AssetRetrievedEx>();
54 private Dictionary<string, string> m_UriMap = new Dictionary<string, string>(); 59 private Dictionary<string, string> m_UriMap = new Dictionary<string, string>();
60
55 public AssetServicesConnector() 61 public AssetServicesConnector()
56 { 62 {
57 } 63 }
@@ -259,23 +265,56 @@ namespace OpenSim.Services.Connectors
259 265
260 if (asset == null || asset.Data == null || asset.Data.Length == 0) 266 if (asset == null || asset.Data == null || asset.Data.Length == 0)
261 { 267 {
262 bool result = false; 268 lock (m_AssetHandlers)
269 {
270 AssetRetrievedEx handlerEx = new AssetRetrievedEx(delegate(AssetBase _asset) { handler(id, sender, _asset); });
263 271
264 AsynchronousRestObjectRequester. 272 AssetRetrievedEx handlers;
265 MakeRequest<int, AssetBase>("GET", uri, 0, 273 if (m_AssetHandlers.TryGetValue(id, out handlers))
274 {
275 // Someone else is already loading this asset. It will notify our handler when done.
276 handlers += handlerEx;
277 return true;
278 }
279
280 // Load the asset ourselves
281 handlers += handlerEx;
282 m_AssetHandlers.Add(id, handlers);
283 }
284
285 bool success = false;
286 try
287 {
288 AsynchronousRestObjectRequester.MakeRequest<int, AssetBase>("GET", uri, 0,
266 delegate(AssetBase a) 289 delegate(AssetBase a)
267 { 290 {
268 if (m_Cache != null) 291 if (m_Cache != null)
269 m_Cache.Cache(a); 292 m_Cache.Cache(a);
270 handler(id, sender, a);
271 result = true;
272 });
273 293
274 return result; 294 AssetRetrievedEx handlers;
295 lock (m_AssetHandlers)
296 {
297 handlers = m_AssetHandlers[id];
298 m_AssetHandlers.Remove(id);
299 }
300 handlers.Invoke(a);
301 });
302
303 success = true;
304 }
305 finally
306 {
307 if (!success)
308 {
309 lock (m_AssetHandlers)
310 {
311 m_AssetHandlers.Remove(id);
312 }
313 }
314 }
275 } 315 }
276 else 316 else
277 { 317 {
278 //Util.FireAndForget(delegate { handler(id, sender, asset); });
279 handler(id, sender, asset); 318 handler(id, sender, asset);
280 } 319 }
281 320
diff --git a/OpenSim/Services/Connectors/Avatar/AvatarServiceConnector.cs b/OpenSim/Services/Connectors/Avatar/AvatarServiceConnector.cs
index 1a93ae7..8fdb4d0 100644
--- a/OpenSim/Services/Connectors/Avatar/AvatarServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Avatar/AvatarServiceConnector.cs
@@ -89,7 +89,7 @@ namespace OpenSim.Services.Connectors
89 public AvatarAppearance GetAppearance(UUID userID) 89 public AvatarAppearance GetAppearance(UUID userID)
90 { 90 {
91 AvatarData avatar = GetAvatar(userID); 91 AvatarData avatar = GetAvatar(userID);
92 return avatar.ToAvatarAppearance(userID); 92 return avatar.ToAvatarAppearance();
93 } 93 }
94 94
95 public bool SetAppearance(UUID userID, AvatarAppearance appearance) 95 public bool SetAppearance(UUID userID, AvatarAppearance appearance)
diff --git a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
index 4ce406c..2c36bf5 100644
--- a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
@@ -242,6 +242,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
242 { 242 {
243 m_log.Debug("[USER AGENT CONNECTOR]: PackAgentCircuitData failed with exception: " + e.Message); 243 m_log.Debug("[USER AGENT CONNECTOR]: PackAgentCircuitData failed with exception: " + e.Message);
244 } 244 }
245
245 // Add the input arguments 246 // Add the input arguments
246 args["gatekeeper_serveruri"] = OSD.FromString(gatekeeper.ServerURI); 247 args["gatekeeper_serveruri"] = OSD.FromString(gatekeeper.ServerURI);
247 args["gatekeeper_host"] = OSD.FromString(gatekeeper.ExternalHostName); 248 args["gatekeeper_host"] = OSD.FromString(gatekeeper.ExternalHostName);
@@ -427,7 +428,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
427 paramList.Add(hash); 428 paramList.Add(hash);
428 429
429 XmlRpcRequest request = new XmlRpcRequest("status_notification", paramList); 430 XmlRpcRequest request = new XmlRpcRequest("status_notification", paramList);
430 string reason = string.Empty; 431// string reason = string.Empty;
431 432
432 // Send and get reply 433 // Send and get reply
433 List<UUID> friendsOnline = new List<UUID>(); 434 List<UUID> friendsOnline = new List<UUID>();
@@ -436,17 +437,17 @@ namespace OpenSim.Services.Connectors.Hypergrid
436 { 437 {
437 response = request.Send(m_ServerURL, 6000); 438 response = request.Send(m_ServerURL, 6000);
438 } 439 }
439 catch (Exception e) 440 catch
440 { 441 {
441 m_log.DebugFormat("[USER AGENT CONNECTOR]: Unable to contact remote server {0}", m_ServerURL); 442 m_log.DebugFormat("[USER AGENT CONNECTOR]: Unable to contact remote server {0} for StatusNotification", m_ServerURL);
442 reason = "Exception: " + e.Message; 443// reason = "Exception: " + e.Message;
443 return friendsOnline; 444 return friendsOnline;
444 } 445 }
445 446
446 if (response.IsFault) 447 if (response.IsFault)
447 { 448 {
448 m_log.ErrorFormat("[USER AGENT CONNECTOR]: remote call to {0} returned an error: {1}", m_ServerURL, response.FaultString); 449 m_log.ErrorFormat("[USER AGENT CONNECTOR]: remote call to {0} for StatusNotification returned an error: {1}", m_ServerURL, response.FaultString);
449 reason = "XMLRPC Fault"; 450// reason = "XMLRPC Fault";
450 return friendsOnline; 451 return friendsOnline;
451 } 452 }
452 453
@@ -458,7 +459,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
458 if (hash == null) 459 if (hash == null)
459 { 460 {
460 m_log.ErrorFormat("[USER AGENT CONNECTOR]: GetOnlineFriends Got null response from {0}! THIS IS BAAAAD", m_ServerURL); 461 m_log.ErrorFormat("[USER AGENT CONNECTOR]: GetOnlineFriends Got null response from {0}! THIS IS BAAAAD", m_ServerURL);
461 reason = "Internal error 1"; 462// reason = "Internal error 1";
462 return friendsOnline; 463 return friendsOnline;
463 } 464 }
464 465
@@ -474,10 +475,10 @@ namespace OpenSim.Services.Connectors.Hypergrid
474 } 475 }
475 476
476 } 477 }
477 catch (Exception e) 478 catch
478 { 479 {
479 m_log.ErrorFormat("[USER AGENT CONNECTOR]: Got exception on GetOnlineFriends response."); 480 m_log.ErrorFormat("[USER AGENT CONNECTOR]: Got exception on GetOnlineFriends response.");
480 reason = "Exception: " + e.Message; 481// reason = "Exception: " + e.Message;
481 } 482 }
482 483
483 return friendsOnline; 484 return friendsOnline;
@@ -498,7 +499,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
498 paramList.Add(hash); 499 paramList.Add(hash);
499 500
500 XmlRpcRequest request = new XmlRpcRequest("get_online_friends", paramList); 501 XmlRpcRequest request = new XmlRpcRequest("get_online_friends", paramList);
501 string reason = string.Empty; 502// string reason = string.Empty;
502 503
503 // Send and get reply 504 // Send and get reply
504 List<UUID> online = new List<UUID>(); 505 List<UUID> online = new List<UUID>();
@@ -507,17 +508,17 @@ namespace OpenSim.Services.Connectors.Hypergrid
507 { 508 {
508 response = request.Send(m_ServerURL, 10000); 509 response = request.Send(m_ServerURL, 10000);
509 } 510 }
510 catch (Exception e) 511 catch
511 { 512 {
512 m_log.DebugFormat("[USER AGENT CONNECTOR]: Unable to contact remote server {0}", m_ServerURL); 513 m_log.DebugFormat("[USER AGENT CONNECTOR]: Unable to contact remote server {0} for GetOnlineFriends", m_ServerURL);
513 reason = "Exception: " + e.Message; 514// reason = "Exception: " + e.Message;
514 return online; 515 return online;
515 } 516 }
516 517
517 if (response.IsFault) 518 if (response.IsFault)
518 { 519 {
519 m_log.ErrorFormat("[USER AGENT CONNECTOR]: remote call to {0} returned an error: {1}", m_ServerURL, response.FaultString); 520 m_log.ErrorFormat("[USER AGENT CONNECTOR]: remote call to {0} for GetOnlineFriends returned an error: {1}", m_ServerURL, response.FaultString);
520 reason = "XMLRPC Fault"; 521// reason = "XMLRPC Fault";
521 return online; 522 return online;
522 } 523 }
523 524
@@ -529,7 +530,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
529 if (hash == null) 530 if (hash == null)
530 { 531 {
531 m_log.ErrorFormat("[USER AGENT CONNECTOR]: GetOnlineFriends Got null response from {0}! THIS IS BAAAAD", m_ServerURL); 532 m_log.ErrorFormat("[USER AGENT CONNECTOR]: GetOnlineFriends Got null response from {0}! THIS IS BAAAAD", m_ServerURL);
532 reason = "Internal error 1"; 533// reason = "Internal error 1";
533 return online; 534 return online;
534 } 535 }
535 536
@@ -545,10 +546,10 @@ namespace OpenSim.Services.Connectors.Hypergrid
545 } 546 }
546 547
547 } 548 }
548 catch (Exception e) 549 catch
549 { 550 {
550 m_log.ErrorFormat("[USER AGENT CONNECTOR]: Got exception on GetOnlineFriends response."); 551 m_log.ErrorFormat("[USER AGENT CONNECTOR]: Got exception on GetOnlineFriends response.");
551 reason = "Exception: " + e.Message; 552// reason = "Exception: " + e.Message;
552 } 553 }
553 554
554 return online; 555 return online;
@@ -563,7 +564,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
563 paramList.Add(hash); 564 paramList.Add(hash);
564 565
565 XmlRpcRequest request = new XmlRpcRequest("get_server_urls", paramList); 566 XmlRpcRequest request = new XmlRpcRequest("get_server_urls", paramList);
566 string reason = string.Empty; 567// string reason = string.Empty;
567 568
568 // Send and get reply 569 // Send and get reply
569 Dictionary<string, object> serverURLs = new Dictionary<string,object>(); 570 Dictionary<string, object> serverURLs = new Dictionary<string,object>();
@@ -572,17 +573,17 @@ namespace OpenSim.Services.Connectors.Hypergrid
572 { 573 {
573 response = request.Send(m_ServerURL, 10000); 574 response = request.Send(m_ServerURL, 10000);
574 } 575 }
575 catch (Exception e) 576 catch
576 { 577 {
577 m_log.DebugFormat("[USER AGENT CONNECTOR]: Unable to contact remote server {0}", m_ServerURL); 578 m_log.DebugFormat("[USER AGENT CONNECTOR]: Unable to contact remote server {0} for GetServerURLs", m_ServerURL);
578 reason = "Exception: " + e.Message; 579// reason = "Exception: " + e.Message;
579 return serverURLs; 580 return serverURLs;
580 } 581 }
581 582
582 if (response.IsFault) 583 if (response.IsFault)
583 { 584 {
584 m_log.ErrorFormat("[USER AGENT CONNECTOR]: remote call to {0} returned an error: {1}", m_ServerURL, response.FaultString); 585 m_log.ErrorFormat("[USER AGENT CONNECTOR]: remote call to {0} for GetServerURLs returned an error: {1}", m_ServerURL, response.FaultString);
585 reason = "XMLRPC Fault"; 586// reason = "XMLRPC Fault";
586 return serverURLs; 587 return serverURLs;
587 } 588 }
588 589
@@ -594,7 +595,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
594 if (hash == null) 595 if (hash == null)
595 { 596 {
596 m_log.ErrorFormat("[USER AGENT CONNECTOR]: GetServerURLs Got null response from {0}! THIS IS BAAAAD", m_ServerURL); 597 m_log.ErrorFormat("[USER AGENT CONNECTOR]: GetServerURLs Got null response from {0}! THIS IS BAAAAD", m_ServerURL);
597 reason = "Internal error 1"; 598// reason = "Internal error 1";
598 return serverURLs; 599 return serverURLs;
599 } 600 }
600 601
@@ -609,10 +610,10 @@ namespace OpenSim.Services.Connectors.Hypergrid
609 } 610 }
610 611
611 } 612 }
612 catch (Exception e) 613 catch
613 { 614 {
614 m_log.ErrorFormat("[USER AGENT CONNECTOR]: Got exception on GetOnlineFriends response."); 615 m_log.ErrorFormat("[USER AGENT CONNECTOR]: Got exception on GetOnlineFriends response.");
615 reason = "Exception: " + e.Message; 616// reason = "Exception: " + e.Message;
616 } 617 }
617 618
618 return serverURLs; 619 return serverURLs;
@@ -627,7 +628,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
627 paramList.Add(hash); 628 paramList.Add(hash);
628 629
629 XmlRpcRequest request = new XmlRpcRequest("locate_user", paramList); 630 XmlRpcRequest request = new XmlRpcRequest("locate_user", paramList);
630 string reason = string.Empty; 631// string reason = string.Empty;
631 632
632 // Send and get reply 633 // Send and get reply
633 string url = string.Empty; 634 string url = string.Empty;
@@ -636,17 +637,17 @@ namespace OpenSim.Services.Connectors.Hypergrid
636 { 637 {
637 response = request.Send(m_ServerURL, 10000); 638 response = request.Send(m_ServerURL, 10000);
638 } 639 }
639 catch (Exception e) 640 catch
640 { 641 {
641 m_log.DebugFormat("[USER AGENT CONNECTOR]: Unable to contact remote server {0}", m_ServerURL); 642 m_log.DebugFormat("[USER AGENT CONNECTOR]: Unable to contact remote server {0} for LocateUser", m_ServerURL);
642 reason = "Exception: " + e.Message; 643// reason = "Exception: " + e.Message;
643 return url; 644 return url;
644 } 645 }
645 646
646 if (response.IsFault) 647 if (response.IsFault)
647 { 648 {
648 m_log.ErrorFormat("[USER AGENT CONNECTOR]: remote call to {0} returned an error: {1}", m_ServerURL, response.FaultString); 649 m_log.ErrorFormat("[USER AGENT CONNECTOR]: remote call to {0} for LocateUser returned an error: {1}", m_ServerURL, response.FaultString);
649 reason = "XMLRPC Fault"; 650// reason = "XMLRPC Fault";
650 return url; 651 return url;
651 } 652 }
652 653
@@ -658,7 +659,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
658 if (hash == null) 659 if (hash == null)
659 { 660 {
660 m_log.ErrorFormat("[USER AGENT CONNECTOR]: LocateUser Got null response from {0}! THIS IS BAAAAD", m_ServerURL); 661 m_log.ErrorFormat("[USER AGENT CONNECTOR]: LocateUser Got null response from {0}! THIS IS BAAAAD", m_ServerURL);
661 reason = "Internal error 1"; 662// reason = "Internal error 1";
662 return url; 663 return url;
663 } 664 }
664 665
@@ -667,10 +668,10 @@ namespace OpenSim.Services.Connectors.Hypergrid
667 url = hash["URL"].ToString(); 668 url = hash["URL"].ToString();
668 669
669 } 670 }
670 catch (Exception e) 671 catch
671 { 672 {
672 m_log.ErrorFormat("[USER AGENT CONNECTOR]: Got exception on LocateUser response."); 673 m_log.ErrorFormat("[USER AGENT CONNECTOR]: Got exception on LocateUser response.");
673 reason = "Exception: " + e.Message; 674// reason = "Exception: " + e.Message;
674 } 675 }
675 676
676 return url; 677 return url;
@@ -686,7 +687,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
686 paramList.Add(hash); 687 paramList.Add(hash);
687 688
688 XmlRpcRequest request = new XmlRpcRequest("get_uui", paramList); 689 XmlRpcRequest request = new XmlRpcRequest("get_uui", paramList);
689 string reason = string.Empty; 690// string reason = string.Empty;
690 691
691 // Send and get reply 692 // Send and get reply
692 string uui = string.Empty; 693 string uui = string.Empty;
@@ -695,17 +696,17 @@ namespace OpenSim.Services.Connectors.Hypergrid
695 { 696 {
696 response = request.Send(m_ServerURL, 10000); 697 response = request.Send(m_ServerURL, 10000);
697 } 698 }
698 catch (Exception e) 699 catch
699 { 700 {
700 m_log.DebugFormat("[USER AGENT CONNECTOR]: Unable to contact remote server {0}", m_ServerURL); 701 m_log.DebugFormat("[USER AGENT CONNECTOR]: Unable to contact remote server {0} for GetUUI", m_ServerURL);
701 reason = "Exception: " + e.Message; 702// reason = "Exception: " + e.Message;
702 return uui; 703 return uui;
703 } 704 }
704 705
705 if (response.IsFault) 706 if (response.IsFault)
706 { 707 {
707 m_log.ErrorFormat("[USER AGENT CONNECTOR]: remote call to {0} returned an error: {1}", m_ServerURL, response.FaultString); 708 m_log.ErrorFormat("[USER AGENT CONNECTOR]: remote call to {0} for GetUUI returned an error: {1}", m_ServerURL, response.FaultString);
708 reason = "XMLRPC Fault"; 709// reason = "XMLRPC Fault";
709 return uui; 710 return uui;
710 } 711 }
711 712
@@ -717,7 +718,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
717 if (hash == null) 718 if (hash == null)
718 { 719 {
719 m_log.ErrorFormat("[USER AGENT CONNECTOR]: GetUUI Got null response from {0}! THIS IS BAAAAD", m_ServerURL); 720 m_log.ErrorFormat("[USER AGENT CONNECTOR]: GetUUI Got null response from {0}! THIS IS BAAAAD", m_ServerURL);
720 reason = "Internal error 1"; 721// reason = "Internal error 1";
721 return uui; 722 return uui;
722 } 723 }
723 724
@@ -726,10 +727,10 @@ namespace OpenSim.Services.Connectors.Hypergrid
726 uui = hash["UUI"].ToString(); 727 uui = hash["UUI"].ToString();
727 728
728 } 729 }
729 catch (Exception e) 730 catch
730 { 731 {
731 m_log.ErrorFormat("[USER AGENT CONNECTOR]: Got exception on LocateUser response."); 732 m_log.ErrorFormat("[USER AGENT CONNECTOR]: Got exception on LocateUser response.");
732 reason = "Exception: " + e.Message; 733// reason = "Exception: " + e.Message;
733 } 734 }
734 735
735 return uui; 736 return uui;
@@ -745,14 +746,14 @@ namespace OpenSim.Services.Connectors.Hypergrid
745 } 746 }
746 catch (Exception e) 747 catch (Exception e)
747 { 748 {
748 m_log.DebugFormat("[USER AGENT CONNECTOR]: Unable to contact remote server {0}", m_ServerURL); 749 m_log.DebugFormat("[USER AGENT CONNECTOR]: Unable to contact remote server {0} for GetBoolResponse", m_ServerURL);
749 reason = "Exception: " + e.Message; 750 reason = "Exception: " + e.Message;
750 return false; 751 return false;
751 } 752 }
752 753
753 if (response.IsFault) 754 if (response.IsFault)
754 { 755 {
755 m_log.ErrorFormat("[USER AGENT CONNECTOR]: remote call to {0} returned an error: {1}", m_ServerURL, response.FaultString); 756 m_log.ErrorFormat("[USER AGENT CONNECTOR]: remote call to {0} for GetBoolResponse returned an error: {1}", m_ServerURL, response.FaultString);
756 reason = "XMLRPC Fault"; 757 reason = "XMLRPC Fault";
757 return false; 758 return false;
758 } 759 }
diff --git a/OpenSim/Services/Connectors/MapImage/MapImageServiceConnector.cs b/OpenSim/Services/Connectors/MapImage/MapImageServiceConnector.cs
index 520d639..69e2d17 100644
--- a/OpenSim/Services/Connectors/MapImage/MapImageServiceConnector.cs
+++ b/OpenSim/Services/Connectors/MapImage/MapImageServiceConnector.cs
@@ -50,7 +50,6 @@ namespace OpenSim.Services.Connectors
50 MethodBase.GetCurrentMethod().DeclaringType); 50 MethodBase.GetCurrentMethod().DeclaringType);
51 51
52 private string m_ServerURI = String.Empty; 52 private string m_ServerURI = String.Empty;
53 private IImprovedAssetCache m_Cache = null;
54 53
55 public MapImageServicesConnector() 54 public MapImageServicesConnector()
56 { 55 {
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs
index b8703c6..2267325 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianActivityDetector.cs
@@ -97,7 +97,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
97 } 97 }
98 } 98 }
99 99
100 m_log.DebugFormat("[SIMIAN ACTIVITY DETECTOR]: Detected client logout {0} in {1}", client.AgentId, client.Scene.RegionInfo.RegionName); 100// m_log.DebugFormat("[SIMIAN ACTIVITY DETECTOR]: Detected client logout {0} in {1}", client.AgentId, client.Scene.RegionInfo.RegionName);
101 m_GridUserService.LoggedOut(client.AgentId.ToString(), client.SessionId, client.Scene.RegionInfo.RegionID, position, lookat); 101 m_GridUserService.LoggedOut(client.AgentId.ToString(), client.SessionId, client.Scene.RegionInfo.RegionID, position, lookat);
102 } 102 }
103 } 103 }
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs
index 810399c..360f0dd 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianAvatarServiceConnector.cs
@@ -213,7 +213,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
213 wearables[11] = new AvatarWearable(map["UnderpantsItem"].AsUUID(), map["UnderpantsAsset"].AsUUID()); 213 wearables[11] = new AvatarWearable(map["UnderpantsItem"].AsUUID(), map["UnderpantsAsset"].AsUUID());
214 wearables[12] = new AvatarWearable(map["SkirtItem"].AsUUID(), map["SkirtAsset"].AsUUID()); 214 wearables[12] = new AvatarWearable(map["SkirtItem"].AsUUID(), map["SkirtAsset"].AsUUID());
215 215
216 AvatarAppearance appearance = new AvatarAppearance(userID); 216 AvatarAppearance appearance = new AvatarAppearance();
217 appearance.Wearables = wearables; 217 appearance.Wearables = wearables;
218 appearance.AvatarHeight = (float)map["Height"].AsReal(); 218 appearance.AvatarHeight = (float)map["Height"].AsReal();
219 219
@@ -257,7 +257,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
257 257
258 if (avatar.AvatarType == 1) // LLAvatar 258 if (avatar.AvatarType == 1) // LLAvatar
259 { 259 {
260 AvatarAppearance appearance = avatar.ToAvatarAppearance(userID); 260 AvatarAppearance appearance = avatar.ToAvatarAppearance();
261 261
262 OSDMap map = new OSDMap(); 262 OSDMap map = new OSDMap();
263 263