From a35a67718d8d7be1cb10832ca7db1e29ea5c9efe Mon Sep 17 00:00:00 2001 From: Salad Dais Date: Thu, 1 Jul 2021 21:16:16 +0000 Subject: [PATCH] Add default_value to MessateTemplateVariable --- hippolyzer/apps/proxy_gui.py | 21 +++---------------- hippolyzer/lib/base/message/template.py | 27 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/hippolyzer/apps/proxy_gui.py b/hippolyzer/apps/proxy_gui.py index 0ba2622..38a8573 100644 --- a/hippolyzer/apps/proxy_gui.py +++ b/hippolyzer/apps/proxy_gui.py @@ -575,24 +575,9 @@ class MessageBuilderWindow(QtWidgets.QMainWindow): if var.name in ("TaskID", "ObjectID"): return VerbatimHumanVal("[[SELECTED_FULL]]") - if var.type.is_int: - return 0 - elif var.type.is_float: - return 0.0 - elif var.type == MsgType.MVT_LLUUID: - return UUID() - elif var.type == MsgType.MVT_BOOL: - return False - elif var.type == MsgType.MVT_VARIABLE: - return "" - elif var.type in (MsgType.MVT_LLVector3, MsgType.MVT_LLVector3d, MsgType.MVT_LLQuaternion): - return VerbatimHumanVal("(0.0, 0.0, 0.0)") - elif var.type == MsgType.MVT_LLVector4: - return VerbatimHumanVal("(0.0, 0.0, 0.0, 0.0)") - elif var.type == MsgType.MVT_FIXED: - return b"\x00" * var.size - elif var.type == MsgType.MVT_IP_ADDR: - return "0.0.0.0" + default_val = var.default_value + if default_val is not None: + return default_val return VerbatimHumanVal("") @nonFatalExceptions diff --git a/hippolyzer/lib/base/message/template.py b/hippolyzer/lib/base/message/template.py index bca2976..85da700 100644 --- a/hippolyzer/lib/base/message/template.py +++ b/hippolyzer/lib/base/message/template.py @@ -22,6 +22,7 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import typing from .msgtypes import MsgType, MsgBlockType +from ..datatypes import UUID class MessageTemplateVariable: @@ -61,6 +62,32 @@ class MessageTemplateVariable: self._probably_text = self._probably_text and self.name != "NameValue" return self._probably_text + @property + def default_value(self): + if self.type.is_int: + return 0 + elif self.type.is_float: + return 0.0 + elif self.type == MsgType.MVT_LLUUID: + return UUID() + elif self.type == MsgType.MVT_BOOL: + return False + elif self.type == MsgType.MVT_VARIABLE: + if self.probably_binary: + return b"" + if self.probably_text: + return "" + return b"" + elif self.type in (MsgType.MVT_LLVector3, MsgType.MVT_LLVector3d, MsgType.MVT_LLQuaternion): + return 0.0, 0.0, 0.0 + elif self.type == MsgType.MVT_LLVector4: + return 0.0, 0.0, 0.0, 0.0 + elif self.type == MsgType.MVT_FIXED: + return b"\x00" * self.size + elif self.type == MsgType.MVT_IP_ADDR: + return "0.0.0.0" + return None + class MessageTemplateBlock: def __init__(self, name):