Rev 1830 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1830 | Rev 1831 | ||
---|---|---|---|
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: 1830 $ |
16 | $Revision: 1831 $ |
Line 17... | Line 17... | ||
17 | 17 | ||
Line 499... | Line 499... | ||
499 | jne @f |
499 | jne @f |
500 | call SOCKET_find_port |
500 | call SOCKET_find_port |
501 | @@: |
501 | @@: |
Line 502... | Line 502... | ||
502 | 502 | ||
503 | mov [eax + TCP_SOCKET.timer_persist], 0 |
503 | mov [eax + TCP_SOCKET.timer_persist], 0 |
504 | mov [eax + TCP_SOCKET.t_state], TCB_SYN_SENT |
504 | mov [eax + TCP_SOCKET.t_state], TCPS_SYN_SENT |
505 | push [TCP_sequence_num] |
505 | push [TCP_sequence_num] |
506 | add [TCP_sequence_num], 6400 |
506 | add [TCP_sequence_num], 6400 |
507 | pop [eax + TCP_SOCKET.ISS] |
507 | pop [eax + TCP_SOCKET.ISS] |
Line 583... | Line 583... | ||
583 | mov edx, MAX_backlog |
583 | mov edx, MAX_backlog |
584 | @@: |
584 | @@: |
Line 585... | Line 585... | ||
585 | 585 | ||
586 | mov [eax + SOCKET.backlog], dx |
586 | mov [eax + SOCKET.backlog], dx |
587 | or [eax + SOCKET.options], SO_ACCEPTCON |
587 | or [eax + SOCKET.options], SO_ACCEPTCON |
Line 588... | Line 588... | ||
588 | mov [eax + TCP_SOCKET.t_state], TCB_LISTEN |
588 | mov [eax + TCP_SOCKET.t_state], TCPS_LISTEN |
589 | 589 | ||
590 | push eax |
590 | push eax |
Line 664... | Line 664... | ||
664 | je .tcp |
664 | je .tcp |
Line 665... | Line 665... | ||
665 | 665 | ||
Line 666... | Line 666... | ||
666 | jmp s_error |
666 | jmp s_error |
667 | 667 | ||
668 | .tcp: |
668 | .tcp: |
Line 669... | Line 669... | ||
669 | cmp [eax + TCP_SOCKET.t_state], TCB_SYN_RECEIVED ; state must be LISTEN, SYN_SENT or CLOSED |
669 | cmp [eax + TCP_SOCKET.t_state], TCPS_SYN_RECEIVED ; state must be LISTEN, SYN_SENT or CLOSED |
670 | jl .free |
670 | jl .free |
Line 847... | Line 847... | ||
847 | ; dd level, optname, optval, optlen |
847 | ; dd level, optname, optval, optlen |
848 | ; OUT: -1 on error |
848 | ; OUT: -1 on error |
849 | ; |
849 | ; |
850 | ; At moment, uses only pseudo-optname -2 for get last_ack_number for TCP. |
850 | ; At moment, uses only pseudo-optname -2 for get last_ack_number for TCP. |
851 | ; TODO: find best way to notify that send()'ed data were acknowledged |
851 | ; TODO: find best way to notify that send()'ed data were acknowledged |
852 | ; Also pseudo-optname -3 is valid and returns socket state, one of TCB_*. |
852 | ; Also pseudo-optname -3 is valid and returns socket state, one of TCPS_*. |
853 | ; |
853 | ; |
854 | ;----------------------------------------------------------------- |
854 | ;----------------------------------------------------------------- |
855 | align 4 |
855 | align 4 |
856 | SOCKET_get_opt: |
856 | SOCKET_get_opt: |
Line 1736... | Line 1736... | ||
1736 | 1736 | ||
1737 | align 4 |
1737 | align 4 |
Line 1738... | Line 1738... | ||
1738 | SOCKET_cant_recv_more: |
1738 | SOCKET_cant_recv_more: |
1739 | 1739 | ||
- | 1740 | ret |
|
- | 1741 | ||
- | 1742 | ||
- | 1743 | ||
- | 1744 | ;----------------------------------------------------------------- |
|
- | 1745 | ; |
|
- | 1746 | ; SOCKET_is_connected |
|
- | 1747 | ; |
|
- | 1748 | ; IN: eax = socket ptr |
|
- | 1749 | ; OUT: / |
|
- | 1750 | ; |
|
- | 1751 | ;----------------------------------------------------------------- |
|
- | 1752 | ||
- | 1753 | align 4 |
|
- | 1754 | SOCKET_is_connected: |
|
- | 1755 | ||
- | 1756 | ||
- | 1757 | and [eax + SOCKET.options], not (SS_ISCONNECTING + SS_ISDISCONNECTING + SS_ISCONFIRMING) |
|
- | 1758 | or [eax + SOCKET.options], SS_ISCONNECTED |
|
- | 1759 | ||
1740 | ret |
1760 | jmp SOCKET_notify_owner |