aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS.txt5
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs2
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs6
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Friends/FriendsRequestHandler.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs7
5 files changed, 14 insertions, 8 deletions
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt
index 36b17be..7601a50 100644
--- a/CONTRIBUTORS.txt
+++ b/CONTRIBUTORS.txt
@@ -75,11 +75,12 @@ what it is today.
75* controlbreak 75* controlbreak
76* coyled 76* coyled
77* Daedius 77* Daedius
78* Dong Jun Lan (IBM)
79* DoranZemlja
80* daTwitch 78* daTwitch
81* devalnor-#708 79* devalnor-#708
82* dmiles (Daxtron Labs) 80* dmiles (Daxtron Labs)
81* Dong Jun Lan (IBM)
82* DoranZemlja
83* dr0b3rts
83* dslake (Intel) 84* dslake (Intel)
84* FredoChaplin 85* FredoChaplin
85* Garmin Kawaguichi 86* Garmin Kawaguichi
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index e47397d..9784d15 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -4828,7 +4828,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
4828 4828
4829 public void SendForceClientSelectObjects(List<uint> ObjectIDs) 4829 public void SendForceClientSelectObjects(List<uint> ObjectIDs)
4830 { 4830 {
4831 m_log.WarnFormat("[LLCLIENTVIEW] sending select with {0} objects", ObjectIDs.Count); 4831// m_log.DebugFormat("[LLCLIENTVIEW] sending select with {0} objects", ObjectIDs.Count);
4832 4832
4833 bool firstCall = true; 4833 bool firstCall = true;
4834 const int MAX_OBJECTS_PER_PACKET = 251; 4834 const int MAX_OBJECTS_PER_PACKET = 251;
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
index 4613344..41ea2a2 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
@@ -685,7 +685,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
685 // 685 //
686 686
687 // Try local 687 // Try local
688 if (LocalFriendshipTerminated(exfriendID)) 688 if (LocalFriendshipTerminated(client.AgentId, exfriendID))
689 return; 689 return;
690 690
691 PresenceInfo[] friendSessions = PresenceService.GetAgents(new string[] { exfriendID.ToString() }); 691 PresenceInfo[] friendSessions = PresenceService.GetAgents(new string[] { exfriendID.ToString() });
@@ -827,13 +827,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
827 return false; 827 return false;
828 } 828 }
829 829
830 public bool LocalFriendshipTerminated(UUID exfriendID) 830 public bool LocalFriendshipTerminated(UUID userID, UUID exfriendID)
831 { 831 {
832 IClientAPI friendClient = LocateClientObject(exfriendID); 832 IClientAPI friendClient = LocateClientObject(exfriendID);
833 if (friendClient != null) 833 if (friendClient != null)
834 { 834 {
835 // the friend in this sim as root agent 835 // the friend in this sim as root agent
836 friendClient.SendTerminateFriend(exfriendID); 836 friendClient.SendTerminateFriend(userID);
837 // update local cache 837 // update local cache
838 RecacheFriends(friendClient); 838 RecacheFriends(friendClient);
839 // we're done 839 // we're done
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsRequestHandler.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsRequestHandler.cs
index 637beef..08196f1 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsRequestHandler.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsRequestHandler.cs
@@ -193,7 +193,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
193 if (!UUID.TryParse(request["ToID"].ToString(), out toID)) 193 if (!UUID.TryParse(request["ToID"].ToString(), out toID))
194 return FailureResult(); 194 return FailureResult();
195 195
196 if (m_FriendsModule.LocalFriendshipTerminated(toID)) 196 if (m_FriendsModule.LocalFriendshipTerminated(fromID, toID))
197 return SuccessResult(); 197 return SuccessResult();
198 198
199 return FailureResult(); 199 return FailureResult();
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
index 8c84c98..8238e23 100644
--- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
@@ -222,7 +222,12 @@ namespace OpenSim.Region.Framework.Scenes
222 public void SendCloseChildAgentConnections(UUID agentID, List<ulong> regionslst) 222 public void SendCloseChildAgentConnections(UUID agentID, List<ulong> regionslst)
223 { 223 {
224 foreach (ulong handle in regionslst) 224 foreach (ulong handle in regionslst)
225 Util.FireAndForget(delegate { SendCloseChildAgent(agentID, handle); }); 225 {
226 // We must take a copy here since handle is acts like a reference when used in an iterator.
227 // This leads to race conditions if directly passed to SendCloseChildAgent with more than one neighbour region.
228 ulong handleCopy = handle;
229 Util.FireAndForget((o) => { SendCloseChildAgent(agentID, handleCopy); });
230 }
226 } 231 }
227 232
228 public List<GridRegion> RequestNamedRegions(string name, int maxNumber) 233 public List<GridRegion> RequestNamedRegions(string name, int maxNumber)