diff options
Diffstat (limited to 'OpenSim/Services/LLLoginService/LLLoginResponse.cs')
-rw-r--r-- | OpenSim/Services/LLLoginService/LLLoginResponse.cs | 43 |
1 files changed, 41 insertions, 2 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) |