(self, buffer)
| 161 | self.protocol_id = a_protocol_id |
| 162 | |
| 163 | def decode(self, buffer): |
| 164 | if self.protocol_id == ImpactPacket.UDP.protocol: |
| 165 | self.udp_decoder = UDPDecoder() |
| 166 | packet = self.udp_decoder.decode(buffer) |
| 167 | elif self.protocol_id == ImpactPacket.TCP.protocol: |
| 168 | self.tcp_decoder = TCPDecoder() |
| 169 | packet = self.tcp_decoder.decode(buffer) |
| 170 | elif self.protocol_id == ICMP6.ICMP6.protocol: |
| 171 | self.icmp6_decoder = ICMP6Decoder() |
| 172 | packet = self.icmp6_decoder.decode(buffer) |
| 173 | else: |
| 174 | # IPv6 Extension Headers lookup |
| 175 | extension_headers = IP6_Extension_Headers.IP6_Extension_Header.get_extension_headers() |
| 176 | if buffer and self.protocol_id in extension_headers: |
| 177 | extension_header_decoder_class = extension_headers[self.protocol_id].get_decoder() |
| 178 | self.extension_header_decoder = extension_header_decoder_class() |
| 179 | packet = self.extension_header_decoder.decode(buffer) |
| 180 | else: |
| 181 | self.data_decoder = DataDecoder() |
| 182 | packet = self.data_decoder.decode(buffer) |
| 183 | |
| 184 | return packet |
| 185 | |
| 186 | class IP6Decoder(Decoder): |
| 187 | def __init__(self): |
no test coverage detected