Rev 7974 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7974 | Rev 8026 | ||
---|---|---|---|
Line 12... | Line 12... | ||
12 | ;; GNU GENERAL PUBLIC LICENSE ;; |
12 | ;; GNU GENERAL PUBLIC LICENSE ;; |
13 | ;; Version 2, June 1991 ;; |
13 | ;; Version 2, June 1991 ;; |
14 | ;; ;; |
14 | ;; ;; |
15 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
15 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 16... | Line 16... | ||
16 | 16 | ||
Line 17... | Line 17... | ||
17 | $Revision: 7974 $ |
17 | $Revision: 8026 $ |
18 | 18 | ||
19 | align 4 |
19 | align 4 |
20 | iglobal |
20 | iglobal |
Line 183... | Line 183... | ||
183 | DEBUGF DEBUG_NETWORK_VERBOSE, "TCP_disconnect: %x\n", eax |
183 | DEBUGF DEBUG_NETWORK_VERBOSE, "TCP_disconnect: %x\n", eax |
Line 184... | Line 184... | ||
184 | 184 | ||
185 | cmp [eax + TCP_SOCKET.t_state], TCPS_ESTABLISHED |
185 | cmp [eax + TCP_SOCKET.t_state], TCPS_ESTABLISHED |
Line -... | Line 186... | ||
- | 186 | jb tcp_close ; Connection not yet synchronised, just get rid of the socket |
|
- | 187 | ||
- | 188 | test [eax + SOCKET.options], SO_LINGER |
|
186 | jb tcp_close ; Connection not yet synchronised, just get rid of the socket |
189 | jz .nolinger |
- | 190 | ||
- | 191 | ; TODO: implement LINGER |
|
Line -... | Line 192... | ||
- | 192 | ; cmp [eax + SOCKET.so_linger], 0 |
|
187 | 193 | ; je TCP_drop |
|
- | 194 | ||
- | 195 | .nolinger: |
|
- | 196 | call socket_is_disconnecting |
|
- | 197 | ||
- | 198 | push eax |
|
- | 199 | add eax, STREAM_SOCKET.rcv |
|
- | 200 | mov ecx, [eax + RING_BUFFER.size] |
|
188 | ; TODO: implement LINGER |
201 | call socket_ring_free |
Line 189... | Line 202... | ||
189 | 202 | pop eax |
|
190 | call socket_is_disconnecting |
203 | |
191 | call tcp_usrclosed |
204 | call tcp_usrclosed |