@@ -493,7 +493,7 @@ def client_connected(self, listener_name, reader: ReaderAdapter, writer: WriterA
493493 yield from self .plugins_manager .fire_event (EVENT_BROKER_MESSAGE_RECEIVED ,
494494 client_id = client_session .client_id ,
495495 message = app_message )
496- yield from self ._broadcast_message (client_session , app_message .topic , app_message .data )
496+ yield from self ._broadcast_message_acl (client_session , app_message .topic , app_message .data )
497497 if app_message .publish_packet .retain_flag :
498498 self .retain_message (client_session , app_message .topic , app_message .data , app_message .qos )
499499 wait_deliver = asyncio .Task (handler .mqtt_deliver_next_message (), loop = self ._loop )
@@ -732,6 +732,13 @@ def _broadcast_loop(self):
732732 yield from asyncio .wait (running_tasks , loop = self ._loop )
733733 raise # reraise per CancelledError semantics
734734
735+ @asyncio .coroutine
736+ def _broadcast_message_acl (self , session , topic , data , force_qos = None ):
737+ permitted = yield from self .topic_filtering (session , topic = topic )
738+
739+ if permitted :
740+ yield from self ._broadcast_message (session , topic , data , force_qos )
741+
735742 @asyncio .coroutine
736743 def _broadcast_message (self , session , topic , data , force_qos = None ):
737744 broadcast = {
0 commit comments