diff options
Diffstat (limited to 'OpenSim/Services/LLLoginService')
-rw-r--r-- | OpenSim/Services/LLLoginService/LLLoginResponse.cs | 43 | ||||
-rw-r--r-- | OpenSim/Services/LLLoginService/LLLoginService.cs | 17 |
2 files changed, 55 insertions, 5 deletions
diff --git a/OpenSim/Services/LLLoginService/LLLoginResponse.cs b/OpenSim/Services/LLLoginService/LLLoginResponse.cs index 01de159..6b3bc84 100644 --- a/OpenSim/Services/LLLoginService/LLLoginResponse.cs +++ b/OpenSim/Services/LLLoginService/LLLoginResponse.cs | |||
@@ -226,7 +226,8 @@ namespace OpenSim.Services.LLLoginService | |||
226 | public LLLoginResponse(UserAccount account, AgentCircuitData aCircuit, GridUserInfo pinfo, | 226 | public LLLoginResponse(UserAccount account, AgentCircuitData aCircuit, GridUserInfo pinfo, |
227 | GridRegion destination, List<InventoryFolderBase> invSkel, FriendInfo[] friendsList, ILibraryService libService, | 227 | GridRegion destination, List<InventoryFolderBase> invSkel, FriendInfo[] friendsList, ILibraryService libService, |
228 | string where, string startlocation, Vector3 position, Vector3 lookAt, List<InventoryItemBase> gestures, string message, | 228 | string where, string startlocation, Vector3 position, Vector3 lookAt, List<InventoryItemBase> gestures, string message, |
229 | GridRegion home, IPEndPoint clientIP, string mapTileURL, string profileURL, string openIDURL, string searchURL, string currency) | 229 | GridRegion home, IPEndPoint clientIP, string mapTileURL, string profileURL, string openIDURL, string searchURL, string currency, |
230 | string DSTZone) | ||
230 | : this() | 231 | : this() |
231 | { | 232 | { |
232 | FillOutInventoryData(invSkel, libService); | 233 | FillOutInventoryData(invSkel, libService); |
@@ -255,7 +256,45 @@ namespace OpenSim.Services.LLLoginService | |||
255 | FillOutRegionData(destination); | 256 | FillOutRegionData(destination); |
256 | 257 | ||
257 | FillOutSeedCap(aCircuit, destination, clientIP); | 258 | FillOutSeedCap(aCircuit, destination, clientIP); |
258 | 259 | ||
260 | switch (DSTZone) | ||
261 | { | ||
262 | case "none": | ||
263 | DST = "N"; | ||
264 | break; | ||
265 | case "local": | ||
266 | DST = TimeZone.CurrentTimeZone.IsDaylightSavingTime(DateTime.Now) ? "Y" : "N"; | ||
267 | break; | ||
268 | default: | ||
269 | TimeZoneInfo dstTimeZone = null; | ||
270 | string[] tzList = DSTZone.Split(';'); | ||
271 | |||
272 | foreach (string tzName in tzList) | ||
273 | { | ||
274 | try | ||
275 | { | ||
276 | dstTimeZone = TimeZoneInfo.FindSystemTimeZoneById(tzName); | ||
277 | } | ||
278 | catch (Exception e) | ||
279 | { | ||
280 | continue; | ||
281 | } | ||
282 | break; | ||
283 | } | ||
284 | |||
285 | if (dstTimeZone == null) | ||
286 | { | ||
287 | m_log.WarnFormat( | ||
288 | "[LLOGIN RESPONSE]: No valid timezone found for DST in {0}, falling back to system time.", tzList); | ||
289 | DST = TimeZone.CurrentTimeZone.IsDaylightSavingTime(DateTime.Now) ? "Y" : "N"; | ||
290 | } | ||
291 | else | ||
292 | { | ||
293 | DST = dstTimeZone.IsDaylightSavingTime(DateTime.Now) ? "Y" : "N"; | ||
294 | } | ||
295 | |||
296 | break; | ||
297 | } | ||
259 | } | 298 | } |
260 | 299 | ||
261 | private void FillOutInventoryData(List<InventoryFolderBase> invSkel, ILibraryService libService) | 300 | private void FillOutInventoryData(List<InventoryFolderBase> invSkel, ILibraryService libService) |
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs index db8a9cb..9acba11 100644 --- a/OpenSim/Services/LLLoginService/LLLoginService.cs +++ b/OpenSim/Services/LLLoginService/LLLoginService.cs | |||
@@ -82,6 +82,8 @@ namespace OpenSim.Services.LLLoginService | |||
82 | protected string m_AllowedClients; | 82 | protected string m_AllowedClients; |
83 | protected string m_DeniedClients; | 83 | protected string m_DeniedClients; |
84 | 84 | ||
85 | protected string m_DSTZone; | ||
86 | |||
85 | IConfig m_LoginServerConfig; | 87 | IConfig m_LoginServerConfig; |
86 | // IConfig m_ClientsConfig; | 88 | // IConfig m_ClientsConfig; |
87 | 89 | ||
@@ -118,6 +120,8 @@ namespace OpenSim.Services.LLLoginService | |||
118 | m_AllowedClients = m_LoginServerConfig.GetString("AllowedClients", string.Empty); | 120 | m_AllowedClients = m_LoginServerConfig.GetString("AllowedClients", string.Empty); |
119 | m_DeniedClients = m_LoginServerConfig.GetString("DeniedClients", string.Empty); | 121 | m_DeniedClients = m_LoginServerConfig.GetString("DeniedClients", string.Empty); |
120 | 122 | ||
123 | m_DSTZone = m_LoginServerConfig.GetString("DSTZone", "America/Los_Angeles;Pacific Standard Time"); | ||
124 | |||
121 | // Clean up some of these vars | 125 | // Clean up some of these vars |
122 | if (m_MapTileURL != String.Empty) | 126 | if (m_MapTileURL != String.Empty) |
123 | { | 127 | { |
@@ -240,6 +244,7 @@ namespace OpenSim.Services.LLLoginService | |||
240 | 244 | ||
241 | m_log.InfoFormat("[LLOGIN SERVICE]: Login request for {0} {1} at {2} using viewer {3}, channel {4}, IP {5}, Mac {6}, Id0 {7}", | 245 | m_log.InfoFormat("[LLOGIN SERVICE]: Login request for {0} {1} at {2} using viewer {3}, channel {4}, IP {5}, Mac {6}, Id0 {7}", |
242 | firstName, lastName, startLocation, clientVersion, channel, clientIP.Address.ToString(), mac, id0); | 246 | firstName, lastName, startLocation, clientVersion, channel, clientIP.Address.ToString(), mac, id0); |
247 | |||
243 | try | 248 | try |
244 | { | 249 | { |
245 | // | 250 | // |
@@ -416,8 +421,11 @@ namespace OpenSim.Services.LLLoginService | |||
416 | // | 421 | // |
417 | // Finally, fill out the response and return it | 422 | // Finally, fill out the response and return it |
418 | // | 423 | // |
419 | LLLoginResponse response = new LLLoginResponse(account, aCircuit, guinfo, destination, inventorySkel, friendsList, m_LibraryService, | 424 | LLLoginResponse response |
420 | where, startLocation, position, lookAt, gestures, m_WelcomeMessage, home, clientIP, m_MapTileURL, m_ProfileURL, m_OpenIDURL, m_SearchURL, m_Currency); | 425 | = new LLLoginResponse( |
426 | account, aCircuit, guinfo, destination, inventorySkel, friendsList, m_LibraryService, | ||
427 | where, startLocation, position, lookAt, gestures, m_WelcomeMessage, home, clientIP, | ||
428 | m_MapTileURL, m_ProfileURL, m_OpenIDURL, m_SearchURL, m_Currency, m_DSTZone); | ||
421 | 429 | ||
422 | m_log.DebugFormat("[LLOGIN SERVICE]: All clear. Sending login response to client."); | 430 | m_log.DebugFormat("[LLOGIN SERVICE]: All clear. Sending login response to client."); |
423 | return response; | 431 | return response; |
@@ -431,7 +439,10 @@ namespace OpenSim.Services.LLLoginService | |||
431 | } | 439 | } |
432 | } | 440 | } |
433 | 441 | ||
434 | protected GridRegion FindDestination(UserAccount account, UUID scopeID, GridUserInfo pinfo, UUID sessionID, string startLocation, GridRegion home, out GridRegion gatekeeper, out string where, out Vector3 position, out Vector3 lookAt, out TeleportFlags flags) | 442 | protected GridRegion FindDestination( |
443 | UserAccount account, UUID scopeID, GridUserInfo pinfo, UUID sessionID, string startLocation, | ||
444 | GridRegion home, out GridRegion gatekeeper, | ||
445 | out string where, out Vector3 position, out Vector3 lookAt, out TeleportFlags flags) | ||
435 | { | 446 | { |
436 | flags = TeleportFlags.ViaLogin; | 447 | flags = TeleportFlags.ViaLogin; |
437 | 448 | ||