aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/LLLoginService/LLLoginResponse.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services/LLLoginService/LLLoginResponse.cs')
-rw-r--r--OpenSim/Services/LLLoginService/LLLoginResponse.cs43
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)