diff options
Diffstat (limited to 'OpenSim/Region/Communications/Hypergrid/HGGridServices.cs')
-rw-r--r-- | OpenSim/Region/Communications/Hypergrid/HGGridServices.cs | 55 |
1 files changed, 37 insertions, 18 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 | ||