""" Copyright 2009, Linden Research, Inc. See NOTICE.md for previous contributors Copyright 2021, Salad Dais All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. """ from logging import getLogger import llsd from hippolyzer.lib.base.message.data import msg_details logger = getLogger('...message.message_dot_xml') class MessageDotXML: """ storage class for a python representation of the llsd message.xml """ def __init__(self, message_xml=None): """ parse message.xml and store a representation of the map """ self.raw_llsd = message_xml or msg_details self.parsed_llsd = llsd.parse(self.raw_llsd) self.serverDefaults = self.parsed_llsd['serverDefaults'] self.messages = self.parsed_llsd['messages'] self.capBans = self.parsed_llsd['capBans'] self.maxQueuedEvents = self.parsed_llsd['maxQueuedEvents'] self.messageBans = self.parsed_llsd['messageBans'] def validate_udp_msg(self, msg_name): """ checks whether a message is allowed over UDP or not """ if msg_name in self.messages: if self.messages[msg_name]['flavor'] == 'template': return True else: return False else: return True