From 502878e01d1e8a6f5c74798f744c9b8443abb5b5 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sat, 21 Nov 2020 03:30:06 +0000 Subject: [PATCH] verify user service urls with same rules --- .../UserManagement/UserManagementModule.cs | 40 ++++++++++++++----- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs index 597b81f723..5a695a87e4 100755 --- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs +++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs @@ -474,10 +474,14 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement if (userdata.ServerURLs != null) { - if(userdata.ServerURLs.ContainsKey(serverType) && userdata.ServerURLs[serverType] != null) - return userdata.ServerURLs[serverType].ToString(); - else - return string.Empty; + if(userdata.ServerURLs.TryGetValue(serverType, out object ourl) && ourl != null) + { + string turl = ourl as string; + OSHHTPHost otmp = new OSHHTPHost(turl); + if (otmp.IsValidHost) + return otmp.URI; + } + return string.Empty; } if (!string.IsNullOrEmpty(userdata.HomeURL)) @@ -504,7 +508,12 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement } if (userdata.ServerURLs != null && userdata.ServerURLs.TryGetValue(serverType, out object ourl) && ourl != null) - return ourl.ToString(); + { + string turl = ourl as string; + OSHHTPHost otmp = new OSHHTPHost(turl); + if (otmp.IsValidHost) + return otmp.URI; + } } } return string.Empty; @@ -535,10 +544,14 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement if (userdata.ServerURLs != null) { - if (userdata.ServerURLs.ContainsKey(serverType) && userdata.ServerURLs[serverType] != null) - return userdata.ServerURLs[serverType].ToString(); - else - return string.Empty; + if (userdata.ServerURLs.TryGetValue(serverType, out object ourl) && ourl != null) + { + string turl = ourl as string; + OSHHTPHost otmp = new OSHHTPHost(turl); + if (otmp.IsValidHost) + return otmp.URI; + } + return string.Empty; } if (!recentFail && !string.IsNullOrEmpty(userdata.HomeURL)) @@ -568,8 +581,13 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement recentFail = true; } - if (userdata.ServerURLs != null && userdata.ServerURLs.ContainsKey(serverType) && userdata.ServerURLs[serverType] != null) - return userdata.ServerURLs[serverType].ToString(); + if (userdata.ServerURLs != null && userdata.ServerURLs.TryGetValue(serverType, out object ourl) && ourl != null) + { + string turl = ourl as string; + OSHHTPHost otmp = new OSHHTPHost(turl); + if (otmp.IsValidHost) + return otmp.URI; + } } } return string.Empty;