aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/OptionalModules/Avatar
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/OptionalModules/Avatar')
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs15
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs3
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs30
3 files changed, 26 insertions, 22 deletions
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
index ec34e39..ddeac66 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
@@ -786,7 +786,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
786 786
787 GroupProfileData profile = new GroupProfileData(); 787 GroupProfileData profile = new GroupProfileData();
788 788
789
790 GroupRecord groupInfo = m_groupData.GetGroupRecord(GetRequestingAgentID(remoteClient), groupID, null); 789 GroupRecord groupInfo = m_groupData.GetGroupRecord(GetRequestingAgentID(remoteClient), groupID, null);
791 if (groupInfo != null) 790 if (groupInfo != null)
792 { 791 {
@@ -812,7 +811,11 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
812 profile.MemberTitle = memberInfo.GroupTitle; 811 profile.MemberTitle = memberInfo.GroupTitle;
813 profile.PowersMask = memberInfo.GroupPowers; 812 profile.PowersMask = memberInfo.GroupPowers;
814 } 813 }
815 814/*
815 this should save xmlrpc calls, but seems to return wrong GroupMembershipCount and GroupRolesCount
816 UUID agent = GetRequestingAgentID(remoteClient);
817 GroupProfileData profile = m_groupData.GetMemberGroupProfile(agent, groupID, agent);
818*/
816 return profile; 819 return profile;
817 } 820 }
818 821
@@ -1407,13 +1410,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
1407 SendDataUpdate(remoteClient, tellOthers); 1410 SendDataUpdate(remoteClient, tellOthers);
1408 1411
1409 GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID); 1412 GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID);
1410 IEventQueue eq = remoteClient.Scene.RequestModuleInterface<IEventQueue>(); 1413 remoteClient.UpdateGroupMembership(membershipArray);
1411 if (eq != null)
1412 eq.GroupMembershipData(agentID, membershipArray);
1413 else
1414 remoteClient.SendGroupMembership(membershipArray);
1415 1414
1416 remoteClient.RefreshGroupMembership(); 1415 remoteClient.SendAgentGroupDataUpdate(agentID, membershipArray);
1417 } 1416 }
1418 1417
1419 /// <summary> 1418 /// <summary>
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs
index 6b5b40a..cff3212 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs
@@ -51,7 +51,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
51 /// GroupID may be specified instead, in which case this parmeter will be null. 51 /// GroupID may be specified instead, in which case this parmeter will be null.
52 /// </param> 52 /// </param>
53 GroupRecord GetGroupRecord(UUID RequestingAgentID, UUID GroupID, string GroupName); 53 GroupRecord GetGroupRecord(UUID RequestingAgentID, UUID GroupID, string GroupName);
54 54 GroupProfileData GetMemberGroupProfile(UUID requestingAgentID, UUID GroupID, UUID AgentID);
55
55 List<DirGroupsReplyData> FindGroups(UUID RequestingAgentID, string search); 56 List<DirGroupsReplyData> FindGroups(UUID RequestingAgentID, string search);
56 List<GroupMembersData> GetGroupMembers(UUID RequestingAgentID, UUID GroupID); 57 List<GroupMembersData> GetGroupMembers(UUID RequestingAgentID, UUID GroupID);
57 58
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs
index acb37f6..2dda3a1 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs
@@ -181,9 +181,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
181 181
182 m_cacheTimeout = groupsConfig.GetInt("GroupsCacheTimeout", 30); 182 m_cacheTimeout = groupsConfig.GetInt("GroupsCacheTimeout", 30);
183 183
184 // disable cache until it is fixed
185 m_cacheTimeout = 0;
186
187 if (m_cacheTimeout == 0) 184 if (m_cacheTimeout == 0)
188 { 185 {
189 m_log.WarnFormat("[XMLRPC-GROUPS-CONNECTOR]: Groups Cache Disabled."); 186 m_log.WarnFormat("[XMLRPC-GROUPS-CONNECTOR]: Groups Cache Disabled.");
@@ -385,10 +382,11 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
385 382
386 GroupMembershipData MemberInfo = GetAgentGroupMembership(requestingAgentID, AgentID, GroupID); 383 GroupMembershipData MemberInfo = GetAgentGroupMembership(requestingAgentID, AgentID, GroupID);
387 GroupProfileData MemberGroupProfile = GroupProfileHashtableToGroupProfileData(respData); 384 GroupProfileData MemberGroupProfile = GroupProfileHashtableToGroupProfileData(respData);
388 385 if(MemberInfo != null)
389 MemberGroupProfile.MemberTitle = MemberInfo.GroupTitle; 386 {
390 MemberGroupProfile.PowersMask = MemberInfo.GroupPowers; 387 MemberGroupProfile.MemberTitle = MemberInfo.GroupTitle;
391 388 MemberGroupProfile.PowersMask = MemberInfo.GroupPowers;
389 }
392 return MemberGroupProfile; 390 return MemberGroupProfile;
393 } 391 }
394 392
@@ -977,12 +975,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
977 975
978 try 976 try
979 { 977 {
980 resp = req.Send(m_groupsServerURI, 30000); 978 resp = req.Send(m_groupsServerURI);
981
982 if ((m_cacheTimeout > 0) && (CacheKey != null))
983 {
984 m_memoryCache.AddOrUpdate(CacheKey, resp, TimeSpan.FromSeconds(m_cacheTimeout));
985 }
986 } 979 }
987 catch (Exception e) 980 catch (Exception e)
988 { 981 {
@@ -1004,12 +997,22 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
1004 m_log.WarnFormat("[XMLRPC-GROUPS-CONNECTOR]: {0} :: {1}", key, param[key].ToString()); 997 m_log.WarnFormat("[XMLRPC-GROUPS-CONNECTOR]: {0} :: {1}", key, param[key].ToString());
1005 } 998 }
1006 } 999 }
1000
1001 if ((m_cacheTimeout > 0) && (CacheKey != null))
1002 {
1003 m_memoryCache.AddOrUpdate(CacheKey, resp, 10.0);
1004 }
1007 Hashtable respData = new Hashtable(); 1005 Hashtable respData = new Hashtable();
1008 respData.Add("error", e.ToString()); 1006 respData.Add("error", e.ToString());
1009 return respData; 1007 return respData;
1010 } 1008 }
1011 } 1009 }
1012 1010
1011 if ((m_cacheTimeout > 0) && (CacheKey != null))
1012 {
1013 m_memoryCache.AddOrUpdate(CacheKey, resp, TimeSpan.FromSeconds(m_cacheTimeout));
1014 }
1015
1013 if (resp.Value is Hashtable) 1016 if (resp.Value is Hashtable)
1014 { 1017 {
1015 Hashtable respData = (Hashtable)resp.Value; 1018 Hashtable respData = (Hashtable)resp.Value;
@@ -1138,6 +1141,7 @@ namespace Nwc.XmlRpc
1138 request.ContentType = "text/xml"; 1141 request.ContentType = "text/xml";
1139 request.AllowWriteStreamBuffering = true; 1142 request.AllowWriteStreamBuffering = true;
1140 request.KeepAlive = !_disableKeepAlive; 1143 request.KeepAlive = !_disableKeepAlive;
1144 request.Timeout = 30000;
1141 1145
1142 using (Stream stream = request.GetRequestStream()) 1146 using (Stream stream = request.GetRequestStream())
1143 { 1147 {