diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs index a7aa4ea..ffdac58 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs | |||
@@ -156,16 +156,31 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage | |||
156 | return; | 156 | return; |
157 | } | 157 | } |
158 | 158 | ||
159 | // Force timestamp to server time to avoid "Saved on" headers | 159 | DateTime dt = DateTime.UtcNow; |
160 | // being generated for online users | ||
161 | im.timestamp = (uint)Util.UnixTimeSinceEpoch(); | ||
162 | 160 | ||
163 | if (dialog == (byte)InstantMessageDialog.MessageFromAgent || | 161 | // Ticks from UtcNow, but make it look like local. Evil, huh? |
164 | dialog == (byte)InstantMessageDialog.MessageFromObject) | 162 | dt = DateTime.SpecifyKind(dt, DateTimeKind.Local); |
163 | |||
164 | try | ||
165 | { | ||
166 | // Convert that to the PST timezone | ||
167 | TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("America/Los_Angeles"); | ||
168 | dt = TimeZoneInfo.ConvertTime(dt, timeZoneInfo); | ||
169 | } | ||
170 | catch | ||
165 | { | 171 | { |
166 | im.offline = 1; | 172 | m_log.Info("[OFFLINE MESSAGING]: No PST timezone found on this machine. Saving with local timestamp."); |
167 | } | 173 | } |
168 | 174 | ||
175 | // And make it look local again to fool the unix time util | ||
176 | dt = DateTime.SpecifyKind(dt, DateTimeKind.Utc); | ||
177 | |||
178 | im.timestamp = (uint)Util.ToUnixTime(dt); | ||
179 | |||
180 | // If client is null, this message comes from storage and IS offline | ||
181 | if (client != null) | ||
182 | im.offline = 0; | ||
183 | |||
169 | if (m_TransferModule != null) | 184 | if (m_TransferModule != null) |
170 | { | 185 | { |
171 | m_TransferModule.SendInstantMessage(im, | 186 | m_TransferModule.SendInstantMessage(im, |