Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1773 → Rev 1774

/kernel/branches/net/network/tcp_input.inc
1339,6 → 1339,22
 
DEBUGF 1,"Processing FIN\n"
 
cmp [ebx + TCP_SOCKET.t_state], TCB_CLOSE_WAIT
je .not_first_fin
cmp [ebx + TCP_SOCKET.t_state], TCB_CLOSING
je .not_first_fin
cmp [ebx + TCP_SOCKET.t_state], TCB_FIN_WAIT_2
je .not_first_fin
 
DEBUGF 1,"First FIN for this connection\n"
 
mov eax, ebx
call SOCKET_cant_recv_more
 
mov [ebx + TCP_SOCKET.t_flags], TF_ACKNOW
inc [ebx + TCP_SOCKET.RCV_NXT]
 
.not_first_fin:
mov eax, [ebx + TCP_SOCKET.t_state]
shl eax, 2
jmp dword [eax + .FIN_sw_list]
1356,24 → 1372,29
dd .fin_wait2 ;TCB_FIN_WAIT_2
dd .fin_timed ;TCB_TIMED_WAIT
 
 
 
.fin_syn_est:
 
jmp .final_processing
mov [ebx + TCP_SOCKET.t_state], TCB_CLOSE_WAIT
jmp .no_fin
 
.fin_wait1:
 
jmp .final_processing
mov [ebx + TCP_SOCKET.t_state], TCB_CLOSING
jmp .no_fin
 
.fin_wait2:
 
jmp .final_processing
mov [ebx + TCP_SOCKET.t_state], TCB_TIMED_WAIT
mov eax, ebx
call TCP_cancel_timers
mov [ebx + TCP_SOCKET.timer_timed_wait], 2 * TCP_time_MSL
call SOCKET_is_disconnected
jmp .no_fin
 
.fin_timed:
mov [ebx + TCP_SOCKET.timer_timed_wait], 2 * TCP_time_MSL
jmp .no_fin
 
jmp .final_processing
 
.no_fin: