Merge branch 'master' of github.com:matrix-org/synapse into erikj-perf

This commit is contained in:
Erik Johnston 2014-12-21 11:47:45 +00:00
commit 74ee4048c2
4 changed files with 26 additions and 6 deletions

View File

@ -2,6 +2,12 @@ Changes in synapse 0.6.0 (2014-12-16)
===================================== =====================================
* Add new API for media upload and download that supports thumbnailing. * Add new API for media upload and download that supports thumbnailing.
* Replicate media uploads over multiple homeservers so media is always served
to clients from their local homeserver. This obsoletes the
--content-addr parameter and confusion over accessing content directly
from remote homeservers.
* Implement exponential backoff when retrying federation requests when
sending to remote homeservers which are offline.
* Implement typing notifications. * Implement typing notifications.
* Fix bugs where we sent events with invalid signatures due to bugs where * Fix bugs where we sent events with invalid signatures due to bugs where
we incorrectly persisted events. we incorrectly persisted events.

View File

@ -194,6 +194,8 @@ class ProfileHandler(BaseHandler):
if not self.hs.is_mine(user): if not self.hs.is_mine(user):
return return
self.ratelimit(user.to_string())
joins = yield self.store.get_rooms_for_user_where_membership_is( joins = yield self.store.get_rooms_for_user_where_membership_is(
user.to_string(), user.to_string(),
[Membership.JOIN], [Membership.JOIN],
@ -214,5 +216,5 @@ class ProfileHandler(BaseHandler):
"room_id": j.room_id, "room_id": j.room_id,
"state_key": j.state_key, "state_key": j.state_key,
"content": content, "content": content,
"sender": j.state_key, "sender": j.state_key
}) }, ratelimit=False)

View File

@ -19,7 +19,7 @@ presence and profiles; namely, the displayname and avatar_url."""
from tests import unittest from tests import unittest
from twisted.internet import defer from twisted.internet import defer
from mock import Mock, call, ANY from mock import Mock, call, ANY, NonCallableMock
from ..utils import MockClock, MockKey from ..utils import MockClock, MockKey
@ -75,8 +75,13 @@ class PresenceProfilelikeDataTestCase(unittest.TestCase):
resource_for_federation=Mock(), resource_for_federation=Mock(),
http_client=None, http_client=None,
replication_layer=MockReplication(), replication_layer=MockReplication(),
config=self.mock_config, ratelimiter=NonCallableMock(spec_set=[
"send_message",
]),
config=self.mock_config
) )
self.ratelimiter = hs.get_ratelimiter()
self.ratelimiter.send_message.return_value = (True, 0)
hs.handlers = PresenceAndProfileHandlers(hs) hs.handlers = PresenceAndProfileHandlers(hs)
self.datastore = hs.get_datastore() self.datastore = hs.get_datastore()

View File

@ -17,7 +17,7 @@
from tests import unittest from tests import unittest
from twisted.internet import defer from twisted.internet import defer
from mock import Mock from mock import Mock, NonCallableMock
from synapse.api.errors import AuthError from synapse.api.errors import AuthError
from synapse.server import HomeServer from synapse.server import HomeServer
@ -59,7 +59,14 @@ class ProfileTestCase(unittest.TestCase):
resource_for_federation=Mock(), resource_for_federation=Mock(),
replication_layer=self.mock_federation, replication_layer=self.mock_federation,
config=self.mock_config, config=self.mock_config,
ratelimiter=NonCallableMock(spec_set=[
"send_message",
])
) )
self.ratelimiter = hs.get_ratelimiter()
self.ratelimiter.send_message.return_value = (True, 0)
hs.handlers = ProfileHandlers(hs) hs.handlers = ProfileHandlers(hs)
self.store = hs.get_datastore() self.store = hs.get_datastore()