(listoffragments, return_ip)
| 520 | |
| 521 | |
| 522 | def reassemble4_core(listoffragments, return_ip): |
| 523 | buffer = BytesIO() |
| 524 | first = listoffragments[0] |
| 525 | buffer.seek(20) |
| 526 | for pkt in listoffragments: |
| 527 | buffer.seek(pkt[IP].frag * 8) |
| 528 | buffer.write(bytes(pkt[IP].payload)) |
| 529 | first.len = len(buffer.getvalue()) + 20 |
| 530 | first.flags = 0 |
| 531 | del first.chksum |
| 532 | if return_ip: |
| 533 | header = bytes(first[IP])[:20] |
| 534 | return first[IP].__class__(header + buffer.getvalue()) |
| 535 | else: |
| 536 | header = bytes(first[Ether])[:34] |
| 537 | return first[Ether].__class__(header + buffer.getvalue()) |
| 538 | |
| 539 | |
| 540 | def reassemble4_ether(listoffragments): |
no test coverage detected