def handle_read(self): ip = struct.unpack("!i", self.recv(4))[0] # network byte-order port = struct.unpack("!h", self.recv(2))[0] # network byte-order length = struct.unpack("i", self.recv(4))[0] # host byte-order src = IpAddress(ip) src.port = port msg = self.recv(length) assert length == len(msg) tlv = BER_decode.get_tlv(msg) # should be community based message version, community, pdu = tlv.decode() if version == 0: pdu = _translate2v2(ip, community, pdu) return self.traphandler(src, community, pdu)
def _decode_message(self, message): tlv = BER_decode.get_tlv(message) version, community, pdu = tlv.decode() return CommunityBasedMessage(community, pdu, version)
def decode(self): import BER_decode tlv = BER_decode.get_tlv(self.tostring()) return tlv.decode()