diff options
author | diva | 2009-01-03 07:05:33 +0000 |
---|---|---|
committer | diva | 2009-01-03 07:05:33 +0000 |
commit | 158de95bde7cdee09334c40baee5122fd8f196e2 (patch) | |
tree | 8a8b1f41db53475cca08633cbeec09d5425a8745 /OpenSim/Region/Communications | |
parent | Plumbing for moving InformRegionOfChildAgent over to RESTComms: pack and unpa... (diff) | |
download | opensim-SC-158de95bde7cdee09334c40baee5122fd8f196e2.zip opensim-SC-158de95bde7cdee09334c40baee5122fd8f196e2.tar.gz opensim-SC-158de95bde7cdee09334c40baee5122fd8f196e2.tar.bz2 opensim-SC-158de95bde7cdee09334c40baee5122fd8f196e2.tar.xz |
Another interregion comms change that will not work well with previous versions. This commit moves InformRegionOfChildAgent from OGS1 to RESTComms, effectively having the complete child agent life cycle over REST: create=POST, update=PUT, close=DELETE.
Additional changes include more functions in the IHyperlink interface, and some refactorings in the HG code for better reuse in RESTComms.
Diffstat (limited to 'OpenSim/Region/Communications')
3 files changed, 39 insertions, 20 deletions
diff --git a/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs b/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs index 691cd4a..fc68ba2 100644 --- a/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs +++ b/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs | |||
@@ -890,17 +890,8 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
890 | 890 | ||
891 | public virtual bool ExpectPrimCrossing(ulong regionHandle, UUID primID, Vector3 position, bool isFlying) { return false; } | 891 | public virtual bool ExpectPrimCrossing(ulong regionHandle, UUID primID, Vector3 position, bool isFlying) { return false; } |
892 | 892 | ||
893 | public virtual bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData) | 893 | public bool SendUserInformation(RegionInfo regInfo, AgentCircuitData agentData) |
894 | { | 894 | { |
895 | // If we're here, it's because regionHandle is a remote, non-grided region | ||
896 | m_log.Info("[HGrid]: InformRegionOfChildAgent for " + regionHandle); | ||
897 | |||
898 | RegionInfo regInfo = GetHyperlinkRegion(regionHandle); | ||
899 | if (regInfo == null) | ||
900 | return false; | ||
901 | |||
902 | //ulong realHandle = regionHandle; | ||
903 | |||
904 | CachedUserInfo uinfo = m_userProfileCache.GetUserDetails(agentData.AgentID); | 895 | CachedUserInfo uinfo = m_userProfileCache.GetUserDetails(agentData.AgentID); |
905 | if ((uinfo == null) || !IsGoingHome(uinfo, regInfo)) | 896 | if ((uinfo == null) || !IsGoingHome(uinfo, regInfo)) |
906 | { | 897 | { |
@@ -914,6 +905,33 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
914 | else | 905 | else |
915 | m_log.Info("[HGrid]: User seems to be going home " + uinfo.UserProfile.FirstName + " " + uinfo.UserProfile.SurName); | 906 | m_log.Info("[HGrid]: User seems to be going home " + uinfo.UserProfile.FirstName + " " + uinfo.UserProfile.SurName); |
916 | 907 | ||
908 | // May need to change agent's name | ||
909 | if (IsLocalUser(uinfo)) | ||
910 | { | ||
911 | agentData.firstname = agentData.firstname + "." + agentData.lastname; | ||
912 | agentData.lastname = "@" + serversInfo.UserURL.Replace("http://", ""); ; //HGNetworkServersInfo.Singleton.LocalUserServerURI; | ||
913 | } | ||
914 | |||
915 | return true; | ||
916 | } | ||
917 | |||
918 | public virtual bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData) | ||
919 | { | ||
920 | // If we're here, it's because regionHandle is a remote, non-grided region | ||
921 | m_log.Info("[HGrid]: InformRegionOfChildAgent for " + regionHandle); | ||
922 | |||
923 | RegionInfo regInfo = GetHyperlinkRegion(regionHandle); | ||
924 | if (regInfo == null) | ||
925 | return false; | ||
926 | |||
927 | //ulong realHandle = regionHandle; | ||
928 | |||
929 | if (!SendUserInformation(regInfo, agentData)) | ||
930 | { | ||
931 | m_log.Warn("[HGrid]: Failed to inform remote region of user."); | ||
932 | //return false; | ||
933 | } | ||
934 | |||
917 | try | 935 | try |
918 | { | 936 | { |
919 | // ... and then | 937 | // ... and then |
@@ -939,12 +957,14 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
939 | if (remObject != null) | 957 | if (remObject != null) |
940 | { | 958 | { |
941 | sAgentCircuitData sag = new sAgentCircuitData(agentData); | 959 | sAgentCircuitData sag = new sAgentCircuitData(agentData); |
942 | // May need to change agent's name | 960 | //CachedUserInfo uinfo = m_userProfileCache.GetUserDetails(agentData.AgentID); |
943 | if (IsLocalUser(uinfo)) | 961 | |
944 | { | 962 | //// May need to change agent's name |
945 | sag.firstname = agentData.firstname + "." + agentData.lastname; | 963 | //if (IsLocalUser(uinfo)) |
946 | sag.lastname = serversInfo.UserURL; //HGNetworkServersInfo.Singleton.LocalUserServerURI; | 964 | //{ |
947 | } | 965 | // sag.firstname = agentData.firstname + "." + agentData.lastname; |
966 | // sag.lastname = serversInfo.UserURL; //HGNetworkServersInfo.Singleton.LocalUserServerURI; | ||
967 | //} | ||
948 | retValue = remObject.InformRegionOfChildAgent(regionHandle, sag); | 968 | retValue = remObject.InformRegionOfChildAgent(regionHandle, sag); |
949 | } | 969 | } |
950 | else | 970 | else |
@@ -1158,7 +1178,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
1158 | /// <param name="regionHandle"></param> | 1178 | /// <param name="regionHandle"></param> |
1159 | /// <param name="agentData"></param> | 1179 | /// <param name="agentData"></param> |
1160 | /// <returns></returns> | 1180 | /// <returns></returns> |
1161 | protected bool HGIncomingChildAgent(ulong regionHandle, AgentCircuitData agentData) | 1181 | public void AdjustUserInformation(AgentCircuitData agentData) |
1162 | { | 1182 | { |
1163 | CachedUserInfo uinfo = m_userProfileCache.GetUserDetails(agentData.AgentID); | 1183 | CachedUserInfo uinfo = m_userProfileCache.GetUserDetails(agentData.AgentID); |
1164 | if ((uinfo != null) && (uinfo.UserProfile != null) && | 1184 | if ((uinfo != null) && (uinfo.UserProfile != null) && |
@@ -1174,7 +1194,6 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
1174 | } | 1194 | } |
1175 | //else | 1195 | //else |
1176 | // Console.WriteLine("---------------> Foreign User!"); | 1196 | // Console.WriteLine("---------------> Foreign User!"); |
1177 | return true; | ||
1178 | } | 1197 | } |
1179 | #endregion | 1198 | #endregion |
1180 | 1199 | ||
diff --git a/OpenSim/Region/Communications/Hypergrid/HGGridServicesGridMode.cs b/OpenSim/Region/Communications/Hypergrid/HGGridServicesGridMode.cs index 83c087d..0448692 100644 --- a/OpenSim/Region/Communications/Hypergrid/HGGridServicesGridMode.cs +++ b/OpenSim/Region/Communications/Hypergrid/HGGridServicesGridMode.cs | |||
@@ -274,7 +274,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
274 | /// <returns></returns> | 274 | /// <returns></returns> |
275 | public bool IncomingChildAgent(ulong regionHandle, AgentCircuitData agentData) | 275 | public bool IncomingChildAgent(ulong regionHandle, AgentCircuitData agentData) |
276 | { | 276 | { |
277 | HGIncomingChildAgent(regionHandle, agentData); | 277 | AdjustUserInformation(agentData); |
278 | 278 | ||
279 | m_log.Info("[HGrid]: Incoming HGrid Agent " + agentData.firstname + " " + agentData.lastname); | 279 | m_log.Info("[HGrid]: Incoming HGrid Agent " + agentData.firstname + " " + agentData.lastname); |
280 | 280 | ||
diff --git a/OpenSim/Region/Communications/Hypergrid/HGGridServicesStandalone.cs b/OpenSim/Region/Communications/Hypergrid/HGGridServicesStandalone.cs index cabc630..c160696 100644 --- a/OpenSim/Region/Communications/Hypergrid/HGGridServicesStandalone.cs +++ b/OpenSim/Region/Communications/Hypergrid/HGGridServicesStandalone.cs | |||
@@ -764,7 +764,7 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
764 | /// <returns></returns> | 764 | /// <returns></returns> |
765 | public bool IncomingChildAgent(ulong regionHandle, AgentCircuitData agentData) | 765 | public bool IncomingChildAgent(ulong regionHandle, AgentCircuitData agentData) |
766 | { | 766 | { |
767 | HGIncomingChildAgent(regionHandle, agentData); | 767 | AdjustUserInformation(agentData); |
768 | 768 | ||
769 | m_log.Info("[HGrid]: " + gdebugRegionName + ": Incoming HGrid Agent " + agentData.firstname + " " + agentData.lastname); | 769 | m_log.Info("[HGrid]: " + gdebugRegionName + ": Incoming HGrid Agent " + agentData.firstname + " " + agentData.lastname); |
770 | 770 | ||