forked from KolibriOS/kolibrios
SOCKET_is_disconnected now clears TCP and UDP ports.
git-svn-id: svn://kolibrios.org@3514 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
5f291d1d1c
commit
a8351928d4
@ -2230,6 +2230,19 @@ SOCKET_is_disconnected:
|
|||||||
and [eax + SOCKET.options], not (SS_ISCONNECTING + SS_ISCONNECTED + SS_ISDISCONNECTING)
|
and [eax + SOCKET.options], not (SS_ISCONNECTING + SS_ISCONNECTED + SS_ISDISCONNECTING)
|
||||||
or [eax + SOCKET.options], SS_CANTRCVMORE + SS_CANTSENDMORE
|
or [eax + SOCKET.options], SS_CANTRCVMORE + SS_CANTSENDMORE
|
||||||
|
|
||||||
|
cmp [eax + SOCKET.Protocol], IP_PROTO_TCP
|
||||||
|
je .tcp
|
||||||
|
|
||||||
|
cmp [eax + SOCKET.Protocol], IP_PROTO_UDP
|
||||||
|
je .udp
|
||||||
|
|
||||||
|
jmp SOCKET_notify
|
||||||
|
|
||||||
|
.tcp:
|
||||||
|
.udp:
|
||||||
|
mov [eax + UDP_SOCKET.LocalPort], 0 ; UDP and TCP structs store localport at the same offset
|
||||||
|
mov [eax + UDP_SOCKET.RemotePort], 0
|
||||||
|
|
||||||
jmp SOCKET_notify
|
jmp SOCKET_notify
|
||||||
|
|
||||||
|
|
||||||
|
@ -416,13 +416,14 @@ local .done
|
|||||||
align 4
|
align 4
|
||||||
TCP_set_persist:
|
TCP_set_persist:
|
||||||
|
|
||||||
|
DEBUGF 1,"TCP_set_persist\n"
|
||||||
|
|
||||||
; First, check if retransmit timer is not set, retransmit and persist are mutually exclusive
|
; First, check if retransmit timer is not set, retransmit and persist are mutually exclusive
|
||||||
|
|
||||||
cmp [eax + TCP_SOCKET.timer_retransmission], 0
|
cmp [eax + TCP_SOCKET.timer_retransmission], 0
|
||||||
jg @f
|
ja @f
|
||||||
|
|
||||||
; calculate RTO
|
; calculate RTO
|
||||||
|
|
||||||
push ebx
|
push ebx
|
||||||
mov ebx, [eax + TCP_SOCKET.t_srtt]
|
mov ebx, [eax + TCP_SOCKET.t_srtt]
|
||||||
shr ebx, 2
|
shr ebx, 2
|
||||||
|
Loading…
Reference in New Issue
Block a user