From fb4b262477cbbe51c66b8e1de15ae429321b8d16 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Philipp=20H=C3=B6rist?= <philipp@hoerist.com>
Date: Mon, 12 Feb 2018 21:18:49 +0100
Subject: [PATCH] Dont use getTimestamp()

getTimestamp() generates always a timestring with a resolution of seconds and
this means time gets always rounded down.
Because we use a resolution of .00000 precision for outgoing messages this
can lead to wrongly sorted messages.
---
 gajim/common/connection_handlers_events.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gajim/common/connection_handlers_events.py b/gajim/common/connection_handlers_events.py
index 70fb41453c..ff72de957e 100644
--- a/gajim/common/connection_handlers_events.py
+++ b/gajim/common/connection_handlers_events.py
@@ -99,7 +99,7 @@ class HelperEvent:
 
     def _generate_timestamp(self, tag):
         # Make sure we use only int/float Epoch time
-        if not isinstance(tag, str):
+        if tag is None:
             self.timestamp = time_time()
             return
         try:
@@ -771,7 +771,7 @@ PresenceHelperEvent):
         # XEP-0203
         delay_tag = self.stanza.getTag('delay', namespace=nbxmpp.NS_DELAY2)
         if delay_tag:
-            self._generate_timestamp(self.stanza.getTimestamp2())
+            self._generate_timestamp(self.stanza.timestamp)
         # XEP-0319
         self.idle_time = None
         idle_tag = self.stanza.getTag('idle', namespace=nbxmpp.NS_IDLE)
@@ -791,7 +791,7 @@ PresenceHelperEvent):
                 self.contact_nickname = x.getTagData('nickname')
             elif namespace == nbxmpp.NS_DELAY and not self.timestamp:
                 # XEP-0091
-                self._generate_timestamp(self.stanza.getTimestamp())
+                self._generate_timestamp(self.stanza.timestamp)
             elif namespace == 'http://delx.cjb.net/protocol/roster-subsync':
                 # see http://trac.gajim.org/ticket/326
                 agent = app.get_server_from_jid(self.jid)
@@ -1401,7 +1401,7 @@ class MessageReceivedEvent(nec.NetworkIncomingEvent, HelperEvent):
 
             self.session.last_receive = time_time()
 
-        self._generate_timestamp(self.stanza.getTimestamp())
+        self._generate_timestamp(self.stanza.timestamp)
 
         return True
 
-- 
GitLab