diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Services/LLLoginService/LLLoginResponse.cs | 43 | ||||
-rw-r--r-- | OpenSim/Services/LLLoginService/LLLoginService.cs | 17 | ||||
-rw-r--r-- | bin/Robust.HG.ini.example | 12 | ||||
-rw-r--r-- | bin/Robust.ini.example | 21 | ||||
-rw-r--r-- | bin/config-include/Standalone.ini | 12 |
5 files changed, 100 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 | ||
diff --git a/bin/Robust.HG.ini.example b/bin/Robust.HG.ini.example index be75407..00e2fd7 100644 --- a/bin/Robust.HG.ini.example +++ b/bin/Robust.HG.ini.example | |||
@@ -275,6 +275,18 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003 | |||
275 | ;AllowedClients = "" | 275 | ;AllowedClients = "" |
276 | ;DeniedClients = "" | 276 | ;DeniedClients = "" |
277 | 277 | ||
278 | ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time" | ||
279 | ;; Viewers do not receive timezone information from the server - almost all (?) default to Pacific Standard Time | ||
280 | ;; However, they do rely on the server to tell them whether it's Daylight Saving Time or not. | ||
281 | ;; Hence, calculating DST based on a different timezone can result in a misleading viewer display and inconsistencies between grids. | ||
282 | ;; By default, this setting uses various timezone names to calculate DST with regards to the viewer's standard PST. | ||
283 | ;; Options are | ||
284 | ;; "none" no DST | ||
285 | ;; "local" use the server's only timezone to calculate DST. This is previous OpenSimulator behaviour. | ||
286 | ;; "America/Los_Angeles;Pacific Standard Time" use these timezone names to look up Daylight savings. | ||
287 | ;; 'America/Los_Angeles' is used on Linux/Mac systems whilst 'Pacific Standard Time' is used on Windows | ||
288 | DSTZone = "America/Los_Angeles;Pacific Standard Time" | ||
289 | |||
278 | [MapImageService] | 290 | [MapImageService] |
279 | LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" | 291 | LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" |
280 | ; Set this if you want to change the default | 292 | ; Set this if you want to change the default |
diff --git a/bin/Robust.ini.example b/bin/Robust.ini.example index 582af27..1c04ab5 100644 --- a/bin/Robust.ini.example +++ b/bin/Robust.ini.example | |||
@@ -250,6 +250,27 @@ ServiceConnectors = "8003/OpenSim.Server.Handlers.dll:AssetServiceConnector,8003 | |||
250 | ;AllowedClients = "" | 250 | ;AllowedClients = "" |
251 | ;DeniedClients = "" | 251 | ;DeniedClients = "" |
252 | 252 | ||
253 | ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time" | ||
254 | ;; Viewers do not listen to timezone sent by the server. They use Pacific Standard Time instead, | ||
255 | ;; but rely on the server to calculate Daylight Saving Time. Sending another DST than US Pacific | ||
256 | ;; would result in time inconsistencies between grids (during summer and around DST transition period) | ||
257 | ;; default let OpenSim calculate US Pacific DST | ||
258 | ;; "none" disable DST (equivallent to "local" with system set to GMT) | ||
259 | ;; "local" force legacy behaviour (using local system time to calculate DST) | ||
260 | ; DSTZone = "America/Los_Angeles;Pacific Standard Time" | ||
261 | |||
262 | ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time" | ||
263 | ;; Viewers do not receive timezone information from the server - almost all (?) default to Pacific Standard Time | ||
264 | ;; However, they do rely on the server to tell them whether it's Daylight Saving Time or not. | ||
265 | ;; Hence, calculating DST based on a different timezone can result in a misleading viewer display and inconsistencies between grids. | ||
266 | ;; By default, this setting uses various timezone names to calculate DST with regards to the viewer's standard PST. | ||
267 | ;; Options are | ||
268 | ;; "none" no DST | ||
269 | ;; "local" use the server's only timezone to calculate DST. This is previous OpenSimulator behaviour. | ||
270 | ;; "America/Los_Angeles;Pacific Standard Time" use these timezone names to look up Daylight savings. | ||
271 | ;; 'America/Los_Angeles' is used on Linux/Mac systems whilst 'Pacific Standard Time' is used on Windows | ||
272 | DSTZone = "America/Los_Angeles;Pacific Standard Time" | ||
273 | |||
253 | [MapImageService] | 274 | [MapImageService] |
254 | LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" | 275 | LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" |
255 | ; Set this if you want to change the default | 276 | ; Set this if you want to change the default |
diff --git a/bin/config-include/Standalone.ini b/bin/config-include/Standalone.ini index d307387..74d9d2e 100644 --- a/bin/config-include/Standalone.ini +++ b/bin/config-include/Standalone.ini | |||
@@ -95,6 +95,18 @@ | |||
95 | 95 | ||
96 | WelcomeMessage = "Welcome, Avatar!" | 96 | WelcomeMessage = "Welcome, Avatar!" |
97 | 97 | ||
98 | ;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time" | ||
99 | ;; Viewers do not receive timezone information from the server - almost all (?) default to Pacific Standard Time | ||
100 | ;; However, they do rely on the server to tell them whether it's Daylight Saving Time or not. | ||
101 | ;; Hence, calculating DST based on a different timezone can result in a misleading viewer display and inconsistencies between grids. | ||
102 | ;; By default, this setting uses various timezone names to calculate DST with regards to the viewer's standard PST. | ||
103 | ;; Options are | ||
104 | ;; "none" no DST | ||
105 | ;; "local" use the server's only timezone to calculate DST. This is previous OpenSimulator behaviour. | ||
106 | ;; "America/Los_Angeles;Pacific Standard Time" use these timezone names to look up Daylight savings. | ||
107 | ;; 'America/Los_Angeles' is used on Linux/Mac systems whilst 'Pacific Standard Time' is used on Windows | ||
108 | DSTZone = "America/Los_Angeles;Pacific Standard Time" | ||
109 | |||
98 | [MapImageService] | 110 | [MapImageService] |
99 | LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" | 111 | LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService" |
100 | ; in minutes | 112 | ; in minutes |