diff options
Diffstat (limited to 'OpenSim/Grid/MessagingServer/MessageService.cs')
-rw-r--r-- | OpenSim/Grid/MessagingServer/MessageService.cs | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/OpenSim/Grid/MessagingServer/MessageService.cs b/OpenSim/Grid/MessagingServer/MessageService.cs index 59fef7e..0abb89d 100644 --- a/OpenSim/Grid/MessagingServer/MessageService.cs +++ b/OpenSim/Grid/MessagingServer/MessageService.cs | |||
@@ -87,6 +87,8 @@ namespace OpenSim.Grid.MessagingServer | |||
87 | { | 87 | { |
88 | if (!m_presences.Contains(userpresence.agentData.AgentID)) | 88 | if (!m_presences.Contains(userpresence.agentData.AgentID)) |
89 | m_presences.Add(userpresence.agentData.AgentID, userpresence); | 89 | m_presences.Add(userpresence.agentData.AgentID, userpresence); |
90 | else | ||
91 | m_presences[userpresence.agentData.AgentID] = userpresence; | ||
90 | } | 92 | } |
91 | 93 | ||
92 | List<FriendListItem> uFriendList = userpresence.friendData; | 94 | List<FriendListItem> uFriendList = userpresence.friendData; |
@@ -132,18 +134,24 @@ namespace OpenSim.Grid.MessagingServer | |||
132 | UserAgentData p2Handle = m_userManager.GetUserAgentData(userpresence.agentData.AgentID); | 134 | UserAgentData p2Handle = m_userManager.GetUserAgentData(userpresence.agentData.AgentID); |
133 | if (p2Handle != null) | 135 | if (p2Handle != null) |
134 | { | 136 | { |
135 | 137 | if (userpresence.lookupUserRegionYN) | |
138 | { | ||
136 | userpresence.regionData.regionHandle = p2Handle.Handle; | 139 | userpresence.regionData.regionHandle = p2Handle.Handle; |
137 | PresenceInformer friendlistupdater = new PresenceInformer(); | 140 | } |
138 | friendlistupdater.presence1 = friendpresence; | 141 | else |
139 | //friendlistupdater.gridserverurl = m_cfg.GridServerURL; | 142 | { |
140 | //friendlistupdater.gridserversendkey = m_cfg.GridSendKey; | 143 | userpresence.lookupUserRegionYN = true; |
141 | //friendlistupdater.gridserverrecvkey = m_cfg.GridRecvKey; | 144 | } |
142 | friendlistupdater.presence2 = userpresence; | 145 | PresenceInformer friendlistupdater = new PresenceInformer(); |
143 | friendlistupdater.OnGetRegionData += GetRegionInfo; | 146 | friendlistupdater.presence1 = friendpresence; |
144 | friendlistupdater.OnDone += PresenceUpdateDone; | 147 | //friendlistupdater.gridserverurl = m_cfg.GridServerURL; |
145 | WaitCallback cb = new WaitCallback(friendlistupdater.go); | 148 | //friendlistupdater.gridserversendkey = m_cfg.GridSendKey; |
146 | ThreadPool.QueueUserWorkItem(cb); | 149 | //friendlistupdater.gridserverrecvkey = m_cfg.GridRecvKey; |
150 | friendlistupdater.presence2 = userpresence; | ||
151 | friendlistupdater.OnGetRegionData += GetRegionInfo; | ||
152 | friendlistupdater.OnDone += PresenceUpdateDone; | ||
153 | WaitCallback cb = new WaitCallback(friendlistupdater.go); | ||
154 | ThreadPool.QueueUserWorkItem(cb); | ||
147 | 155 | ||
148 | } | 156 | } |
149 | else | 157 | else |
@@ -462,6 +470,7 @@ namespace OpenSim.Grid.MessagingServer | |||
462 | RegionProfileData riData = GetRegionInfo(regionHandle); | 470 | RegionProfileData riData = GetRegionInfo(regionHandle); |
463 | up.regionData = riData; | 471 | up.regionData = riData; |
464 | up.OnlineYN = true; | 472 | up.OnlineYN = true; |
473 | up.lookupUserRegionYN = false; | ||
465 | ProcessFriendListSubscriptions(up); | 474 | ProcessFriendListSubscriptions(up); |
466 | 475 | ||
467 | return new XmlRpcResponse(); | 476 | return new XmlRpcResponse(); |