Rev 2302 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2302 | Rev 2303 | ||
---|---|---|---|
Line 11... | Line 11... | ||
11 | ;; GNU GENERAL PUBLIC LICENSE ;; |
11 | ;; GNU GENERAL PUBLIC LICENSE ;; |
12 | ;; Version 2, June 1991 ;; |
12 | ;; Version 2, June 1991 ;; |
13 | ;; ;; |
13 | ;; ;; |
14 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
14 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 15... | Line 15... | ||
15 | 15 | ||
Line 16... | Line 16... | ||
16 | $Revision: 2302 $ |
16 | $Revision: 2303 $ |
Line 17... | Line 17... | ||
17 | 17 | ||
Line 629... | Line 629... | ||
629 | get_from_queue (eax + SOCKET_QUEUE_LOCATION), MAX_backlog, 4, s_error |
629 | get_from_queue (eax + SOCKET_QUEUE_LOCATION), MAX_backlog, 4, s_error |
Line 630... | Line 630... | ||
630 | 630 | ||
631 | mov eax, [esi] |
631 | mov eax, [esi] |
632 | call SOCKET_ptr_to_num |
632 | call SOCKET_ptr_to_num |
633 | jz s_error |
633 | jz s_error |
634 | mov dword [esp+32], eax |
634 | mov [esp+32], eax |
Line 635... | Line 635... | ||
635 | ret |
635 | ret |
636 | 636 | ||
Line 723... | Line 723... | ||
723 | ja .too_small |
723 | ja .too_small |
Line 724... | Line 724... | ||
724 | 724 | ||
725 | push [esi + socket_queue_entry.buf_ptr] ; save the buffer addr so we can clear it later |
725 | push [esi + socket_queue_entry.buf_ptr] ; save the buffer addr so we can clear it later |
726 | mov esi, [esi + socket_queue_entry.data_ptr] |
726 | mov esi, [esi + socket_queue_entry.data_ptr] |
727 | DEBUGF 1,"Source buffer: %x, real addr: %x\n", [esp], esi |
727 | DEBUGF 1,"Source buffer: %x, real addr: %x\n", [esp], esi |
Line 728... | Line 728... | ||
728 | mov dword[esp+32+4], ecx ; return number of bytes copied |
728 | mov [esp+32+4], ecx ; return number of bytes copied |
729 | 729 | ||
730 | ; copy the data |
730 | ; copy the data |
731 | shr ecx, 1 |
731 | shr ecx, 1 |
Line 758... | Line 758... | ||
758 | mov edi, edx |
758 | mov edi, edx |
759 | add eax, STREAM_SOCKET.rcv |
759 | add eax, STREAM_SOCKET.rcv |
760 | call SOCKET_ring_read |
760 | call SOCKET_ring_read |
761 | call SOCKET_ring_free |
761 | call SOCKET_ring_free |
Line 762... | Line 762... | ||
762 | 762 | ||
Line 763... | Line 763... | ||
763 | mov dword[esp+32], ecx ; return number of bytes copied |
763 | mov [esp+32], ecx ; return number of bytes copied |
Line 764... | Line 764... | ||
764 | 764 | ||
Line 796... | Line 796... | ||
796 | 796 | ||
Line 797... | Line 797... | ||
797 | DEBUGF 1,"SOCKET_send: UDP\n" |
797 | DEBUGF 1,"SOCKET_send: UDP\n" |
Line 798... | Line 798... | ||
798 | 798 | ||
799 | call UDP_output |
799 | call UDP_output |
Line 800... | Line 800... | ||
800 | 800 | ||
801 | mov dword [esp+32], 0 |
801 | mov [esp+32], eax |
Line 833... | Line 833... | ||
833 | 833 | ||
Line 834... | Line 834... | ||
834 | DEBUGF 1,"SOCKET_send: ICMP\n" |
834 | DEBUGF 1,"SOCKET_send: ICMP\n" |
Line 835... | Line 835... | ||
835 | 835 | ||
836 | call ICMP_output_raw |
836 | call ICMP_output_raw |
Line 1056... | Line 1056... | ||
1056 | align 4 |
1056 | align 4 |
1057 | SOCKET_input: |
1057 | SOCKET_input: |
Line 1058... | Line 1058... | ||
1058 | 1058 | ||
Line 1059... | Line 1059... | ||
1059 | DEBUGF 1,"SOCKET_input: socket=%x, data=%x size=%u\n", eax, esi, ecx |
1059 | DEBUGF 1,"SOCKET_input: socket=%x, data=%x size=%u\n", eax, esi, ecx |
1060 | 1060 | ||
1061 | mov dword[esp+4], ecx |
1061 | mov [esp+4], ecx |
Line 1062... | Line 1062... | ||
1062 | push esi |
1062 | push esi |