Rev 5565 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5565 | Rev 5984 | ||
---|---|---|---|
Line 15... | Line 15... | ||
15 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
15 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 16... | Line 16... | ||
16 | 16 | ||
Line 17... | Line 17... | ||
17 | $Revision: 5442 $ |
17 | $Revision: 5442 $ |
18 | - | ||
- | 18 | ||
19 | 19 | ||
20 | ;------------------------- |
- | |
21 | ; |
20 | ;-----------------------------------------------------------------; |
22 | ; TCP_usrclose |
- | |
23 | ; |
21 | ; ; |
24 | ; Move connection to next state, based on process close. |
- | |
- | 22 | ; TCP_usrclosed ; |
|
- | 23 | ; ; |
|
- | 24 | ; IN: eax = socket ptr ; |
|
25 | ; |
25 | ; ; |
26 | ; IN: eax = socket ptr |
26 | ; OUT: / ; |
27 | ; |
27 | ; ; |
Line 28... | Line 28... | ||
28 | ;------------------------- |
28 | ;-----------------------------------------------------------------; |
Line 35... | Line 35... | ||
35 | mov ebx, [eax + TCP_SOCKET.t_state] |
35 | mov ebx, [eax + TCP_SOCKET.t_state] |
36 | mov ebx, dword [.switch + ebx*4] |
36 | mov ebx, dword [.switch + ebx*4] |
37 | jmp ebx |
37 | jmp ebx |
Line 38... | Line 38... | ||
38 | 38 | ||
39 | .switch: |
- | |
40 | 39 | .switch: |
|
41 | dd .close ; TCPS_CLOSED |
40 | dd .close ; TCPS_CLOSED |
42 | dd .close ; TCPS_LISTEN |
41 | dd .close ; TCPS_LISTEN |
43 | dd .close ; TCPS_SYN_SENT |
42 | dd .close ; TCPS_SYN_SENT |
44 | dd .wait1 ; TCPS_SYN_RECEIVED |
43 | dd .wait1 ; TCPS_SYN_RECEIVED |
Line 48... | Line 47... | ||
48 | dd .ret ; TCPS_CLOSING |
47 | dd .ret ; TCPS_CLOSING |
49 | dd .ret ; TCPS_LAST_ACK |
48 | dd .ret ; TCPS_LAST_ACK |
50 | dd .disc ; TCPS_FIN_WAIT_2 |
49 | dd .disc ; TCPS_FIN_WAIT_2 |
51 | dd .disc ; TCPS_TIMED_WAIT |
50 | dd .disc ; TCPS_TIMED_WAIT |
Line 52... | Line -... | ||
52 | - | ||
53 | 51 | ||
54 | .close: |
52 | .close: |
55 | mov [eax + TCP_SOCKET.t_state], TCPS_CLOSED |
53 | mov [eax + TCP_SOCKET.t_state], TCPS_CLOSED |
56 | call TCP_close |
54 | call TCP_close |
57 | pop ebx |
55 | pop ebx |
Line 72... | Line 70... | ||
72 | .ret: |
70 | .ret: |
73 | pop ebx |
71 | pop ebx |
74 | ret |
72 | ret |
Line 75... | Line 73... | ||
75 | 73 | ||
76 | - | ||
- | 74 | ||
77 | ;------------------------- |
75 | ;-----------------------------------------------------------------; |
78 | ; |
- | |
- | 76 | ; ; |
|
79 | ; TCP_connect |
77 | ; TCP_connect ; |
- | 78 | ; ; |
|
80 | ; |
79 | ; IN: eax = socket ptr ; |
- | 80 | ; ; |
|
81 | ; IN: eax = socket ptr |
81 | ; OUT: eax = 0 on success ; |
82 | ; OUT: eax = 0 ok / -1 error |
- | |
- | 82 | ; eax = -1 on error ; |
|
83 | ; ebx = error code |
83 | ; ebx = error code on error ; |
84 | ; |
84 | ; ; |
85 | ;------------------------- |
85 | ;-----------------------------------------------------------------; |
Line 86... | Line 86... | ||
86 | align 4 |
86 | align 4 |
87 | TCP_connect: |
87 | TCP_connect: |