forked from KolibriOS/kolibrios
fix: reset connection by peer
git-svn-id: svn://kolibrios.org@1288 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
9162c6e06b
commit
2beb55bd3a
@ -2134,10 +2134,10 @@ e3c59x_boomerang_transmit:
|
|||||||
@@:
|
@@:
|
||||||
; calculate
|
; calculate
|
||||||
mov ebx, ecx
|
mov ebx, ecx
|
||||||
test byte [e3c59x_has_hwcksm], 0xff
|
;test byte [e3c59x_has_hwcksm], 0xff
|
||||||
jz @f
|
;jz @f
|
||||||
;;; or ebx, (1 shl 26) ; set AddTcpChecksum
|
;or ebx, (1 shl 26) ; set AddTcpChecksum
|
||||||
@@:
|
;@@:
|
||||||
or ebx, 0x8000 ; transmission complete notification
|
or ebx, 0x8000 ; transmission complete notification
|
||||||
or ecx, 0x80000000 ; last fragment
|
or ecx, 0x80000000 ; last fragment
|
||||||
; program DPD
|
; program DPD
|
||||||
|
@ -584,6 +584,8 @@ local sockAddr dd ?
|
|||||||
je .destroy_tcb
|
je .destroy_tcb
|
||||||
cmp [ebx + SOCKET.TCBState], TCB_SYN_SENT
|
cmp [ebx + SOCKET.TCBState], TCB_SYN_SENT
|
||||||
je .destroy_tcb
|
je .destroy_tcb
|
||||||
|
cmp [ebx + SOCKET.TCBState], TCB_CLOSED
|
||||||
|
je .destroy_tcb
|
||||||
|
|
||||||
; Now construct the response, and queue for sending by IP
|
; Now construct the response, and queue for sending by IP
|
||||||
mov eax, EMPTY_QUEUE
|
mov eax, EMPTY_QUEUE
|
||||||
|
@ -888,7 +888,7 @@ proc stateTCB_ESTABLISHED stdcall, sockAddr:DWORD
|
|||||||
jne .exit
|
jne .exit
|
||||||
|
|
||||||
; Did we receive a FIN or RST?
|
; Did we receive a FIN or RST?
|
||||||
test [edx + 20 + TCP_PACKET.Flags], TH_FIN
|
test [edx + 20 + TCP_PACKET.Flags], TH_FIN+TH_RST
|
||||||
jz .check_ack
|
jz .check_ack
|
||||||
|
|
||||||
; It was a fin or reset.
|
; It was a fin or reset.
|
||||||
@ -922,6 +922,10 @@ proc stateTCB_ESTABLISHED stdcall, sockAddr:DWORD
|
|||||||
@@: ; Send an ACK to that fin, and enter closewait state
|
@@: ; Send an ACK to that fin, and enter closewait state
|
||||||
|
|
||||||
mov [ebx + SOCKET.TCBState], TCB_CLOSE_WAIT
|
mov [ebx + SOCKET.TCBState], TCB_CLOSE_WAIT
|
||||||
|
test [edx + 20 + TCP_PACKET.Flags], TH_RST
|
||||||
|
je @f
|
||||||
|
mov [ebx + SOCKET.TCBState], TCB_CLOSED
|
||||||
|
@@:
|
||||||
call signal_network_event
|
call signal_network_event
|
||||||
lea esi, [ebx + SOCKET.RCV_NXT]
|
lea esi, [ebx + SOCKET.RCV_NXT]
|
||||||
mov eax, [esi] ; save original
|
mov eax, [esi] ; save original
|
||||||
|
Loading…
Reference in New Issue
Block a user