Rev 1773 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1773 | Rev 1774 | ||
---|---|---|---|
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: 1773 $ |
17 | $Revision: 1774 $ |
18 | 18 | ||
19 | ;----------------------------------------------------------------- |
19 | ;----------------------------------------------------------------- |
20 | ; |
20 | ; |
Line 1337... | Line 1337... | ||
1337 | 1337 | ||
Line 1338... | Line 1338... | ||
1338 | .process_fin: |
1338 | .process_fin: |
Line -... | Line 1339... | ||
- | 1339 | ||
- | 1340 | DEBUGF 1,"Processing FIN\n" |
|
- | 1341 | ||
- | 1342 | cmp [ebx + TCP_SOCKET.t_state], TCB_CLOSE_WAIT |
|
- | 1343 | je .not_first_fin |
|
- | 1344 | cmp [ebx + TCP_SOCKET.t_state], TCB_CLOSING |
|
- | 1345 | je .not_first_fin |
|
- | 1346 | cmp [ebx + TCP_SOCKET.t_state], TCB_FIN_WAIT_2 |
|
- | 1347 | je .not_first_fin |
|
- | 1348 | ||
- | 1349 | DEBUGF 1,"First FIN for this connection\n" |
|
- | 1350 | ||
- | 1351 | mov eax, ebx |
|
- | 1352 | call SOCKET_cant_recv_more |
|
- | 1353 | ||
- | 1354 | mov [ebx + TCP_SOCKET.t_flags], TF_ACKNOW |
|
1339 | 1355 | inc [ebx + TCP_SOCKET.RCV_NXT] |
|
1340 | DEBUGF 1,"Processing FIN\n" |
1356 | |
1341 | 1357 | .not_first_fin: |
|
Line 1342... | Line 1358... | ||
1342 | mov eax, [ebx + TCP_SOCKET.t_state] |
1358 | mov eax, [ebx + TCP_SOCKET.t_state] |
Line 1354... | Line 1370... | ||
1354 | dd .no_fin ;TCB_CLOSING |
1370 | dd .no_fin ;TCB_CLOSING |
1355 | dd .no_fin ;TCB_LAST_ACK |
1371 | dd .no_fin ;TCB_LAST_ACK |
1356 | dd .fin_wait2 ;TCB_FIN_WAIT_2 |
1372 | dd .fin_wait2 ;TCB_FIN_WAIT_2 |
1357 | dd .fin_timed ;TCB_TIMED_WAIT |
1373 | dd .fin_timed ;TCB_TIMED_WAIT |
Line 1358... | Line -... | ||
1358 | - | ||
1359 | - | ||
1360 | 1374 | ||
Line -... | Line 1375... | ||
- | 1375 | .fin_syn_est: |
|
1361 | .fin_syn_est: |
1376 | |
Line 1362... | Line 1377... | ||
1362 | 1377 | mov [ebx + TCP_SOCKET.t_state], TCB_CLOSE_WAIT |
|
Line -... | Line 1378... | ||
- | 1378 | jmp .no_fin |
|
1363 | jmp .final_processing |
1379 | |
Line 1364... | Line 1380... | ||
1364 | 1380 | .fin_wait1: |
|
Line -... | Line 1381... | ||
- | 1381 | ||
- | 1382 | mov [ebx + TCP_SOCKET.t_state], TCB_CLOSING |
|
- | 1383 | jmp .no_fin |
|
- | 1384 | ||
- | 1385 | .fin_wait2: |
|
1365 | .fin_wait1: |
1386 | |
Line 1366... | Line 1387... | ||
1366 | 1387 | mov [ebx + TCP_SOCKET.t_state], TCB_TIMED_WAIT |
|
1367 | jmp .final_processing |
- | |
- | 1388 | mov eax, ebx |
|
1368 | 1389 | call TCP_cancel_timers |
|
Line 1369... | Line 1390... | ||
1369 | .fin_wait2: |
1390 | mov [ebx + TCP_SOCKET.timer_timed_wait], 2 * TCP_time_MSL |