Ensure only main or federation_sender process can send federation traffic

This commit is contained in:
Erik Johnston 2016-11-23 14:09:47 +00:00
parent b69f76c106
commit 26072df6af
3 changed files with 21 additions and 5 deletions

View file

@ -143,7 +143,12 @@ class Notifier(object):
self.clock = hs.get_clock()
self.appservice_handler = hs.get_application_service_handler()
self.federation_sender = hs.get_federation_sender()
if hs.should_send_federation():
self.federation_sender = hs.get_federation_sender()
else:
self.federation_sender = None
self.state_handler = hs.get_state_handler()
self.clock.looping_call(
@ -220,7 +225,9 @@ class Notifier(object):
"""Notify any user streams that are interested in this room event"""
# poke any interested application service.
self.appservice_handler.notify_interested_services(room_stream_id)
self.federation_sender.notify_new_events(room_stream_id)
if self.federation_sender:
self.federation_sender.notify_new_events(room_stream_id)
if event.type == EventTypes.Member and event.membership == Membership.JOIN:
self._user_joined_room(event.state_key, event.room_id)