Rev 7974 | Show entire file | Ignore 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 |
Line 309... | Line 322... | ||
309 | mov eax, SOCKET_BUFFER_SIZE |
322 | mov eax, SOCKET_BUFFER_SIZE |
310 | sub eax, [esi + STREAM_SOCKET.rcv.size] |
323 | sub eax, [esi + STREAM_SOCKET.rcv.size] |
311 | cmp eax, TCP_max_win |
324 | cmp eax, TCP_max_win |
312 | jbe .lessthanmax |
325 | jbe .lessthanmax |
313 | mov eax, TCP_max_win |
326 | mov eax, TCP_max_win |
314 | .lessthanmax: |
327 | .lessthanmax: |
315 | mov cl, [esi + TCP_SOCKET.RCV_SCALE] |
328 | mov cl, [esi + TCP_SOCKET.RCV_SCALE] |
316 | shr eax, cl |
329 | shr eax, cl |
Line 317... | Line 330... | ||
317 | 330 | ||
318 | xchg al, ah |
331 | xchg al, ah |