Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1773 → Rev 1772

/kernel/branches/net/network/tcp_input.inc
1129,11 → 1129,10
.ack_fw1:
jz .ack_processed
 
test [ebx + SOCKET.state], SS_CANTRCVMORE
test [ebx + SOCKET.state], SO_CANTRCVMORE
jnz @f
mov eax, ebx
call SOCKET_is_disconnected
;;; mov [ebx + TCP_SOCKET.timer_timed_wait], TCP_time_max_idle
;;soisdisconnected(ebx)
mov [ebx + TCP_SOCKET.timer_timed_wait], TCP_time_max_idle
@@:
 
mov [ebx + TCP_SOCKET.t_state], TCB_FIN_WAIT_2
1144,11 → 1143,9
jz .ack_processed
 
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
mov eax, ebx
call SOCKET_is_disconnected
;;soisdisconnected(ebx)
jmp .ack_processed
 
 
1155,8 → 1152,6
.ack_la:
jz .ack_processed
 
 
mov eax, ebx
call TCP_close
jmp .drop
 
/kernel/branches/net/network/socket.inc
15,7 → 15,6
 
$Revision$
 
 
virtual at 0
 
SOCKET:
1681,46 → 1680,3
pop ebx
 
ret
 
 
 
 
 
 
 
 
;-----------------------------------------------------------------
;
; SOCKET_is_disconnecting
;
; IN: eax = socket ptr
; OUT: /
;
;-----------------------------------------------------------------
 
align 4
SOCKET_is_disconnecting:
 
and [eax + SOCKET.options], not (SS_ISCONNECTING)
or [eax + SOCKET.options], SS_ISDISCONNECTING + SS_CANTRCVMORE + SS_CANTSENDMORE
 
jmp SOCKET_notify_owner
 
 
 
;-----------------------------------------------------------------
;
; SOCKET_is_disconnected
;
; IN: eax = socket ptr
; OUT: /
;
;-----------------------------------------------------------------
 
align 4
SOCKET_is_disconnected:
 
and [eax + SOCKET.options], not (SS_ISCONNECTING + SS_ISCONNECTED + SS_ISDISCONNECTING)
or [eax + SOCKET.options], SS_CANTRCVMORE + SS_CANTSENDMORE
 
jmp SOCKET_notify_owner
/kernel/branches/net/network/stack.inc
62,23 → 62,6
; Socket options
SO_ACCEPTCON equ 1
 
; Socket States
SS_NOFDREF equ 0x001 ; no file table ref any more
SS_ISCONNECTED equ 0x002 ; socket connected to a peer
SS_ISCONNECTING equ 0x004 ; in process of connecting to peer
SS_ISDISCONNECTING equ 0x008 ; in process of disconnecting
SS_CANTSENDMORE equ 0x010 ; can't send more data to peer
SS_CANTRCVMORE equ 0x020 ; can't receive more data from peer
SS_RCVATMARK equ 0x040 ; at mark on input
SS_ISABORTING equ 0x080 ; aborting fd references - close()
SS_RESTARTSYS equ 0x100 ; restart blocked system calls
SS_ISDISCONNECTED equ 0x800 ; socket disconnected from peer
 
SS_ASYNC equ 0x100 ; async i/o notify
SS_ISCONFIRMING equ 0x200 ; deciding to accept connection req
SS_MORETOCOME equ 0x400 ;
 
 
SOCKET_MAXDATA equ 4096*32 ; must be 4096*(power of 2) where 'power of 2' is at least 8
 
; Network driver types
/kernel/branches/net/network/tcp_timer.inc
111,25 → 111,4
jmp .loop
.exit:
 
}
 
 
 
; eax = socket
 
TCP_cancel_timers:
 
push eax edi
 
lea edi, [eax + TCP_SOCKET.timer_retransmission]
xor eax, eax
stosd
stosd
stosd
stosd
stosd
 
pop edi eax
 
 
ret
}