aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/HypergridService
diff options
context:
space:
mode:
authorOren Hurvitz2013-12-08 16:50:24 +0200
committerOren Hurvitz2014-03-24 12:26:52 +0100
commit921f0052f43e0e4553e970a8d560c5635fcd3ca6 (patch)
tree10bc5c8041c355adaef139d6d23f6f62e95f6bdf /OpenSim/Services/HypergridService
parentBetter error messages (diff)
downloadopensim-SC_OLD-921f0052f43e0e4553e970a8d560c5635fcd3ca6.zip
opensim-SC_OLD-921f0052f43e0e4553e970a8d560c5635fcd3ca6.tar.gz
opensim-SC_OLD-921f0052f43e0e4553e970a8d560c5635fcd3ca6.tar.bz2
opensim-SC_OLD-921f0052f43e0e4553e970a8d560c5635fcd3ca6.tar.xz
Get the full viewer name even if it's (incorrectly) sent in the 'Channel' field
Recent versions of Firestorm and Singularity have started sending the viewer name in the 'Channel' field, leaving only their version number in the 'Viewer' field. So we need to search both of these fields for the viewer name. This resolves http://opensimulator.org/mantis/view.php?id=6952
Diffstat (limited to 'OpenSim/Services/HypergridService')
-rw-r--r--OpenSim/Services/HypergridService/GatekeeperService.cs12
1 files changed, 7 insertions, 5 deletions
diff --git a/OpenSim/Services/HypergridService/GatekeeperService.cs b/OpenSim/Services/HypergridService/GatekeeperService.cs
index f6136b5..7a0228b 100644
--- a/OpenSim/Services/HypergridService/GatekeeperService.cs
+++ b/OpenSim/Services/HypergridService/GatekeeperService.cs
@@ -1,4 +1,4 @@
1/* 1/*
2 * Copyright (c) Contributors, http://opensimulator.org/ 2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders. 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 * 4 *
@@ -228,17 +228,19 @@ namespace OpenSim.Services.HypergridService
228 aCircuit.firstname, aCircuit.lastname, authURL, aCircuit.AgentID, destination.RegionName, 228 aCircuit.firstname, aCircuit.lastname, authURL, aCircuit.AgentID, destination.RegionName,
229 aCircuit.Viewer, aCircuit.Channel, aCircuit.IPAddress, aCircuit.Mac, aCircuit.Id0, aCircuit.teleportFlags.ToString()); 229 aCircuit.Viewer, aCircuit.Channel, aCircuit.IPAddress, aCircuit.Mac, aCircuit.Id0, aCircuit.teleportFlags.ToString());
230 230
231 string curViewer = Util.GetViewerName(aCircuit);
232
231 // 233 //
232 // Check client 234 // Check client
233 // 235 //
234 if (m_AllowedClients != string.Empty) 236 if (m_AllowedClients != string.Empty)
235 { 237 {
236 Regex arx = new Regex(m_AllowedClients); 238 Regex arx = new Regex(m_AllowedClients);
237 Match am = arx.Match(aCircuit.Viewer); 239 Match am = arx.Match(curViewer);
238 240
239 if (!am.Success) 241 if (!am.Success)
240 { 242 {
241 m_log.InfoFormat("[GATEKEEPER SERVICE]: Login failed, reason: client {0} is not allowed", aCircuit.Viewer); 243 m_log.InfoFormat("[GATEKEEPER SERVICE]: Login failed, reason: client {0} is not allowed", curViewer);
242 return false; 244 return false;
243 } 245 }
244 } 246 }
@@ -246,11 +248,11 @@ namespace OpenSim.Services.HypergridService
246 if (m_DeniedClients != string.Empty) 248 if (m_DeniedClients != string.Empty)
247 { 249 {
248 Regex drx = new Regex(m_DeniedClients); 250 Regex drx = new Regex(m_DeniedClients);
249 Match dm = drx.Match(aCircuit.Viewer); 251 Match dm = drx.Match(curViewer);
250 252
251 if (dm.Success) 253 if (dm.Success)
252 { 254 {
253 m_log.InfoFormat("[GATEKEEPER SERVICE]: Login failed, reason: client {0} is denied", aCircuit.Viewer); 255 m_log.InfoFormat("[GATEKEEPER SERVICE]: Login failed, reason: client {0} is denied", curViewer);
254 return false; 256 return false;
255 } 257 }
256 } 258 }