aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-05-07 17:21:45 +0100
committerJustin Clark-Casey (justincc)2012-05-07 17:21:45 +0100
commitcdf97ab3a654581fe5c3f29b1b3a6459c8c73378 (patch)
treec9f2d386908dccd0b997430acf7231556adbc910 /OpenSim/Region
parentadd a null check for Primitive.Sculpt in PrimitiveBaseShape constructor for O... (diff)
downloadopensim-SC-cdf97ab3a654581fe5c3f29b1b3a6459c8c73378.zip
opensim-SC-cdf97ab3a654581fe5c3f29b1b3a6459c8c73378.tar.gz
opensim-SC-cdf97ab3a654581fe5c3f29b1b3a6459c8c73378.tar.bz2
opensim-SC-cdf97ab3a654581fe5c3f29b1b3a6459c8c73378.tar.xz
Fix a bug in FriendsModule.StatusNotify() where all subsequent friends would not be notified once a non-local friend was found.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs9
1 files changed, 7 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
index fc6325d..98afbc9 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
@@ -498,7 +498,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
498 Util.FireAndForget( 498 Util.FireAndForget(
499 delegate 499 delegate
500 { 500 {
501 m_log.DebugFormat("[FRIENDS MODULE]: Notifying {0} friends", friendList.Count); 501 m_log.DebugFormat(
502 "[FRIENDS MODULE]: Notifying {0} friends of {1} of online status {2}",
503 friendList.Count, agentID, online);
504
502 // Notify about this user status 505 // Notify about this user status
503 StatusNotify(friendList, agentID, online); 506 StatusNotify(friendList, agentID, online);
504 } 507 }
@@ -515,7 +518,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
515 { 518 {
516 // Try local 519 // Try local
517 if (LocalStatusNotification(userID, friendID, online)) 520 if (LocalStatusNotification(userID, friendID, online))
518 return; 521 continue;
519 522
520 // The friend is not here [as root]. Let's forward. 523 // The friend is not here [as root]. Let's forward.
521 PresenceInfo[] friendSessions = PresenceService.GetAgents(new string[] { friendID.ToString() }); 524 PresenceInfo[] friendSessions = PresenceService.GetAgents(new string[] { friendID.ToString() });
@@ -523,11 +526,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
523 { 526 {
524 PresenceInfo friendSession = null; 527 PresenceInfo friendSession = null;
525 foreach (PresenceInfo pinfo in friendSessions) 528 foreach (PresenceInfo pinfo in friendSessions)
529 {
526 if (pinfo.RegionID != UUID.Zero) // let's guard against sessions-gone-bad 530 if (pinfo.RegionID != UUID.Zero) // let's guard against sessions-gone-bad
527 { 531 {
528 friendSession = pinfo; 532 friendSession = pinfo;
529 break; 533 break;
530 } 534 }
535 }
531 536
532 if (friendSession != null) 537 if (friendSession != null)
533 { 538 {