Rev 9804 | Rev 9806 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9804 | Rev 9805 | ||
---|---|---|---|
Line 14... | Line 14... | ||
14 | ;; GNU GENERAL PUBLIC LICENSE ;; |
14 | ;; GNU GENERAL PUBLIC LICENSE ;; |
15 | ;; Version 2, June 1991 ;; |
15 | ;; Version 2, June 1991 ;; |
16 | ;; ;; |
16 | ;; ;; |
17 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
17 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 18... | Line 18... | ||
18 | 18 | ||
Line 19... | Line 19... | ||
19 | $Revision: 9804 $ |
19 | $Revision: 9805 $ |
20 | 20 | ||
Line 21... | Line 21... | ||
21 | IPv4_MAX_FRAGMENTS = 64 |
21 | IPv4_MAX_FRAGMENTS = 64 |
Line 504... | Line 504... | ||
504 | push eax |
504 | push eax |
505 | push eax |
505 | push eax |
506 | call kernel_alloc |
506 | call kernel_alloc |
507 | test eax, eax |
507 | test eax, eax |
508 | je .destroy_slot_pop ; If we dont have enough space to allocate the buffer, discard all packets in slot |
508 | je .destroy_slot_pop ; If we dont have enough space to allocate the buffer, discard all packets in slot |
509 | mov edx, [esp] ; Get pointer to first fragment entry back in edx |
509 | mov edx, [esp+4] ; Get pointer to first fragment entry back in edx |
Line 510... | Line 510... | ||
510 | 510 | ||
511 | .rebuild_packet_loop: |
511 | .rebuild_packet_loop: |
512 | movzx ecx, [edx + sizeof.NET_BUFF + sizeof.IPv4_FRAGMENT_entry + IPv4_header.FlagsAndFragmentOffset] ; Calculate the fragment offset |
512 | movzx ecx, [edx + sizeof.NET_BUFF + sizeof.IPv4_FRAGMENT_entry + IPv4_header.FlagsAndFragmentOffset] ; Calculate the fragment offset |
513 | xchg cl, ch ; intel byte order |
513 | xchg cl, ch ; intel byte order |