From b23b82173c6bc0f29be66b1fff2ea7c384388250 Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Tue, 26 Sep 2023 18:49:05 -0500 Subject: [PATCH] Allow Owntracks plugin to handle negative and hex node numbers --- plugins.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins.py b/plugins.py index 5016333..dcb75ae 100644 --- a/plugins.py +++ b/plugins.py @@ -328,13 +328,22 @@ class OwntracksPlugin(Plugin): if option not in self.config: self.logger.warning(f"Missing config: {option}") return packet - tid_table = self.config["tid_table"] + #tid_table = self.config["tid_table"] + tid_table = {} + for tid_entry in self.config["tid_table"]: # We want to check for a key with an ! and convert to string + if "!" in tid_entry: + tid_table[str(int(tid_entry[1:], 16))] = self.config["tid_table"][tid_entry] + else: + tid_table[tid_entry] = self.config["tid_table"][tid_entry] if not "from" in packet: self.logger.warning("Missing from: field") return packet - if not str(packet["from"]) in self.config["tid_table"]: + if packet["from"] < 0: + packet["from"] = packet["from"] +(1 << 32) + + if not str(packet["from"]) in tid_table: self.logger.warning(f"Sender not in tid_table: {packet}") return packet