diff --git a/synapse/api/events/factory.py b/synapse/api/events/factory.py
index 0d94850cec..74d0ef77f4 100644
--- a/synapse/api/events/factory.py
+++ b/synapse/api/events/factory.py
@@ -58,8 +58,8 @@ class EventFactory(object):
random_string(10), self.hs.hostname
)
- if "ts" not in kwargs:
- kwargs["ts"] = int(self.clock.time_msec())
+ if "origin_server_ts" not in kwargs:
+ kwargs["origin_server_ts"] = int(self.clock.time_msec())
# The "age" key is a delta timestamp that should be converted into an
# absolute timestamp the minute we see it.
diff --git a/synapse/federation/pdu_codec.py b/synapse/federation/pdu_codec.py
index 7e574f451d..991aae2a56 100644
--- a/synapse/federation/pdu_codec.py
+++ b/synapse/federation/pdu_codec.py
@@ -95,8 +95,8 @@ class PduCodec(object):
if k not in ["event_id", "room_id", "type"]
})
- if "ts" not in kwargs:
- kwargs["ts"] = int(self.clock.time_msec())
+ if "origin_server_ts" not in kwargs:
+ kwargs["origin_server_ts"] = int(self.clock.time_msec())
pdu = Pdu(**kwargs)
pdu = add_event_pdu_content_hash(pdu)
diff --git a/synapse/federation/persistence.py b/synapse/federation/persistence.py
index de36a80e41..7043fcc504 100644
--- a/synapse/federation/persistence.py
+++ b/synapse/federation/persistence.py
@@ -157,7 +157,7 @@ class TransactionActions(object):
transaction.prev_ids = yield self.store.prep_send_transaction(
transaction.transaction_id,
transaction.destination,
- transaction.ts,
+ transaction.origin_server_ts,
[(p["pdu_id"], p["origin"]) for p in transaction.pdus]
)
diff --git a/synapse/federation/replication.py b/synapse/federation/replication.py
index f2a5d4d5e2..4a9414c1d4 100644
--- a/synapse/federation/replication.py
+++ b/synapse/federation/replication.py
@@ -427,7 +427,7 @@ class ReplicationLayer(object):
return Transaction(
origin=self.server_name,
pdus=pdus,
- ts=int(time_now),
+ origin_server_ts=int(time_now),
destination=None,
)
@@ -595,7 +595,7 @@ class _TransactionQueue(object):
logger.debug("TX [%s] Persisting transaction...", destination)
transaction = Transaction.create_new(
- ts=int(self._clock.time_msec()),
+ origin_server_ts=int(self._clock.time_msec()),
transaction_id=str(self._next_txn_id),
origin=self.server_name,
destination=destination,
diff --git a/synapse/federation/units.py b/synapse/federation/units.py
index c629e5793e..b81e162512 100644
--- a/synapse/federation/units.py
+++ b/synapse/federation/units.py
@@ -41,7 +41,7 @@ class Pdu(JsonEncodedObject):
{
"pdu_id": "78c",
- "ts": 1404835423000,
+ "origin_server_ts": 1404835423000,
"origin": "bar",
"prev_ids": [
["23b", "foo"],
@@ -56,7 +56,7 @@ class Pdu(JsonEncodedObject):
"pdu_id",
"context",
"origin",
- "ts",
+ "origin_server_ts",
"pdu_type",
"destinations",
"transaction_id",
@@ -84,7 +84,7 @@ class Pdu(JsonEncodedObject):
"pdu_id",
"context",
"origin",
- "ts",
+ "origin_server_ts",
"pdu_type",
"content",
]
@@ -122,6 +122,7 @@ class Pdu(JsonEncodedObject):
"""
if pdu_tuple:
d = copy.copy(pdu_tuple.pdu_entry._asdict())
+ d["origin_server_ts"] = d.pop("ts")
for k in d.keys():
if d[k] is None:
@@ -212,7 +213,7 @@ class Transaction(JsonEncodedObject):
"transaction_id",
"origin",
"destination",
- "ts",
+ "origin_server_ts",
"previous_ids",
"pdus",
"edus",
@@ -229,7 +230,7 @@ class Transaction(JsonEncodedObject):
"transaction_id",
"origin",
"destination",
- "ts",
+ "origin_server_ts",
"pdus",
]
@@ -251,10 +252,10 @@ class Transaction(JsonEncodedObject):
@staticmethod
def create_new(pdus, **kwargs):
""" Used to create a new transaction. Will auto fill out
- transaction_id and ts keys.
+ transaction_id and origin_server_ts keys.
"""
- if "ts" not in kwargs:
- raise KeyError("Require 'ts' to construct a Transaction")
+ if "origin_server_ts" not in kwargs:
+ raise KeyError("Require 'origin_server_ts' to construct a Transaction")
if "transaction_id" not in kwargs:
raise KeyError(
"Require 'transaction_id' to construct a Transaction"
diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py
index 317ef2c80c..7b2b8549ed 100644
--- a/synapse/handlers/message.py
+++ b/synapse/handlers/message.py
@@ -64,7 +64,7 @@ class MessageHandler(BaseHandler):
defer.returnValue(None)
@defer.inlineCallbacks
- def send_message(self, event=None, suppress_auth=False, stamp_event=True):
+ def send_message(self, event=None, suppress_auth=False):
""" Send a message.
Args:
@@ -72,7 +72,6 @@ class MessageHandler(BaseHandler):
suppress_auth (bool) : True to suppress auth for this message. This
is primarily so the home server can inject messages into rooms at
will.
- stamp_event (bool) : True to stamp event content with server keys.
Raises:
SynapseError if something went wrong.
"""
@@ -82,9 +81,6 @@ class MessageHandler(BaseHandler):
user = self.hs.parse_userid(event.user_id)
assert user.is_mine, "User must be our own: %s" % (user,)
- if stamp_event:
- event.content["hsob_ts"] = int(self.clock.time_msec())
-
snapshot = yield self.store.snapshot_room(event.room_id, event.user_id)
if not suppress_auth:
@@ -132,7 +128,7 @@ class MessageHandler(BaseHandler):
defer.returnValue(chunk)
@defer.inlineCallbacks
- def store_room_data(self, event=None, stamp_event=True):
+ def store_room_data(self, event=None):
""" Stores data for a room.
Args:
@@ -151,9 +147,6 @@ class MessageHandler(BaseHandler):
yield self.auth.check(event, snapshot, raises=True)
- if stamp_event:
- event.content["hsob_ts"] = int(self.clock.time_msec())
-
yield self.state_handler.handle_new_event(event, snapshot)
yield self._on_new_room_event(event, snapshot)
@@ -221,10 +214,7 @@ class MessageHandler(BaseHandler):
defer.returnValue(None)
@defer.inlineCallbacks
- def send_feedback(self, event, stamp_event=True):
- if stamp_event:
- event.content["hsob_ts"] = int(self.clock.time_msec())
-
+ def send_feedback(self, event):
snapshot = yield self.store.snapshot_room(event.room_id, event.user_id)
yield self.auth.check(event, snapshot, raises=True)
diff --git a/synapse/rest/presence.py b/synapse/rest/presence.py
index 7fc8ce4404..138cc88a05 100644
--- a/synapse/rest/presence.py
+++ b/synapse/rest/presence.py
@@ -68,7 +68,7 @@ class PresenceStatusRestServlet(RestServlet):
yield self.handlers.presence_handler.set_state(
target_user=user, auth_user=auth_user, state=state)
- defer.returnValue((200, ""))
+ defer.returnValue((200, {}))
def on_OPTIONS(self, request):
return (200, {})
@@ -141,7 +141,7 @@ class PresenceListRestServlet(RestServlet):
yield defer.DeferredList(deferreds)
- defer.returnValue((200, ""))
+ defer.returnValue((200, {}))
def on_OPTIONS(self, request):
return (200, {})
diff --git a/synapse/storage/__init__.py b/synapse/storage/__init__.py
index 1738260cc1..e4f708b6ad 100644
--- a/synapse/storage/__init__.py
+++ b/synapse/storage/__init__.py
@@ -163,6 +163,8 @@ class DataStore(RoomMemberStore, RoomStore,
cols["unrecognized_keys"] = json.dumps(unrec_keys)
+ cols["ts"] = cols.pop("origin_server_ts")
+
logger.debug("Persisting: %s", repr(cols))
for hash_alg, hash_base64 in pdu.hashes.items():
diff --git a/synapse/storage/_base.py b/synapse/storage/_base.py
index dba50f1213..65a86e9056 100644
--- a/synapse/storage/_base.py
+++ b/synapse/storage/_base.py
@@ -354,6 +354,7 @@ class SQLBaseStore(object):
d.pop("stream_ordering", None)
d.pop("topological_ordering", None)
d.pop("processed", None)
+ d["origin_server_ts"] = d.pop("ts", 0)
d.update(json.loads(row_dict["unrecognized_keys"]))
d["content"] = json.loads(d["content"])
@@ -361,7 +362,7 @@ class SQLBaseStore(object):
if "age_ts" not in d:
# For compatibility
- d["age_ts"] = d["ts"] if "ts" in d else 0
+ d["age_ts"] = d.get("origin_server_ts", 0)
return self.event_factory.create_event(
etype=d["type"],
diff --git a/synapse/storage/transactions.py b/synapse/storage/transactions.py
index ab4599b468..2ba8e30efe 100644
--- a/synapse/storage/transactions.py
+++ b/synapse/storage/transactions.py
@@ -87,7 +87,8 @@ class TransactionStore(SQLBaseStore):
txn.execute(query, (code, response_json, transaction_id, origin))
- def prep_send_transaction(self, transaction_id, destination, ts, pdu_list):
+ def prep_send_transaction(self, transaction_id, destination,
+ origin_server_ts, pdu_list):
"""Persists an outgoing transaction and calculates the values for the
previous transaction id list.
@@ -97,7 +98,7 @@ class TransactionStore(SQLBaseStore):
Args:
transaction_id (str)
destination (str)
- ts (int)
+ origin_server_ts (int)
pdu_list (list)
Returns:
@@ -106,11 +107,11 @@ class TransactionStore(SQLBaseStore):
return self.runInteraction(
self._prep_send_transaction,
- transaction_id, destination, ts, pdu_list
+ transaction_id, destination, origin_server_ts, pdu_list
)
- def _prep_send_transaction(self, txn, transaction_id, destination, ts,
- pdu_list):
+ def _prep_send_transaction(self, txn, transaction_id, destination,
+ origin_server_ts, pdu_list):
# First we find out what the prev_txs should be.
# Since we know that we are only sending one transaction at a time,
@@ -131,7 +132,7 @@ class TransactionStore(SQLBaseStore):
None,
transaction_id=transaction_id,
destination=destination,
- ts=ts,
+ ts=origin_server_ts,
response_code=0,
response_json=None
))
|