Prevent endless loop in Alias.
authorBenjamin Braatz <benjamin.braatz@graph-it.com>
Wed, 22 Sep 2021 12:36:02 +0000 (14:36 +0200)
committerBenjamin Braatz <benjamin.braatz@graph-it.com>
Wed, 22 Sep 2021 12:36:02 +0000 (14:36 +0200)
controlpi_plugins/util.py

index 5834a83086a97d5bc3dd5ee796c7116a3a049ba7..92a82de3a39865a90fd5c184cb8ec7beae841fff 100644 (file)
@@ -361,12 +361,14 @@ class Alias(BasePlugin):
 
     async def alias(self, message: Message) -> None:
         """Translate and send message."""
-        alias_message = Message(self.name, message)
-        alias_message.update(self._to)
-        for key in self._translate:
-            if key in message:
-                alias_message[self._translate[key]] = message[key]
-        await self.bus.send(alias_message)
+        # Prevent endless loop:
+        if message['sender'] != self.name:
+            alias_message = Message(self.name, message)
+            alias_message.update(self._to)
+            for key in self._translate:
+                if key in message:
+                    alias_message[self._translate[key]] = message[key]
+            await self.bus.send(alias_message)
 
     async def run(self) -> None:
         """Run no code proactively."""