def decode(self, aBuffer): i = ImpactPacket.IP(aBuffer) self.set_decoded_protocol(i) off = i.get_header_size() if i.get_ip_p() == ImpactPacket.UDP.protocol: self.udp_decoder = UDPDecoder() packet = self.udp_decoder.decode(aBuffer[off:]) else: self.data_decoder = DataDecoder() packet = self.data_decoder.decode(aBuffer[off:]) i.contains(packet) return i
def decode(self, aBuffer): i = ImpactPacket.IP(aBuffer) self.set_decoded_protocol(i) start = i.get_header_size() end = i.get_ip_len() if i.get_ip_p() == ImpactPacket.UDP.protocol: self.udp_decoder = UDPDecoder() packet = self.udp_decoder.decode(aBuffer[start:end]) elif i.get_ip_p( ) == ImpactPacket.TCP.protocol: # something could be wrong here self.tcp_decoder = TCPDecoder() packet = self.tcp_decoder.decode(aBuffer[start:end]) elif i.get_ip_p() == ImpactPacket.ICMP.protocol: self.icmp_decoder = ICMPDecoder() packet = self.icmp_decoder.decode(aBuffer[start:end]) else: self.data_decoder = DataDecoder() packet = self.data_decoder.decode(aBuffer[start:end]) i.contains(packet) return i