mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-12-25 08:06:49 +03:00
allow query of TCP socket state through getsockopt()
git-svn-id: svn://kolibrios.org@1299 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
d939ae6ae1
commit
18d56a4087
@ -741,6 +741,7 @@ socket_send:
|
||||
;
|
||||
; At moment, uses only pseudo-optname -2 for get last_ack_number for TCP.
|
||||
; TODO: find best way to notify that send()'ed data were acknowledged
|
||||
; Also pseudo-optname -3 is valid and returns socket state, one of TCB_*.
|
||||
;
|
||||
;-----------------------------------------------------------------
|
||||
align 4
|
||||
@ -749,7 +750,10 @@ socket_get_opt:
|
||||
cmp dword [edx], IP_PROTO_TCP
|
||||
jnz .unknown
|
||||
cmp dword [edx+4], -2
|
||||
jz @f
|
||||
cmp dword [edx+4], -3
|
||||
jnz .unknown
|
||||
@@:
|
||||
mov eax, [edx+12]
|
||||
test eax, eax
|
||||
jz .fail
|
||||
@ -761,6 +765,10 @@ socket_get_opt:
|
||||
jz .fail
|
||||
; todo: check that eax is really TCP socket
|
||||
mov ecx, [eax + SOCKET_head.end + IPv4_SOCKET.end + TCP_SOCKET.last_ack_number]
|
||||
cmp dword [edx+4], -2
|
||||
jz @f
|
||||
mov ecx, [eax + SOCKET_head.end + IPv4_SOCKET.end + TCP_SOCKET.state]
|
||||
@@:
|
||||
mov eax, [edx+8]
|
||||
test eax, eax
|
||||
jz @f
|
||||
|
Loading…
Reference in New Issue
Block a user