Added some stub functions to net_branch

git-svn-id: svn://kolibrios.org@1885 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
hidnplayr 2011-02-24 14:16:02 +00:00
parent a61ff47fb2
commit d19fc735da
4 changed files with 58 additions and 17 deletions

View File

@ -57,9 +57,6 @@ virtual at IP_SOCKET.end
.LocalPort dw ? .LocalPort dw ?
.RemotePort dw ? .RemotePort dw ?
.OrigRemoteIP dd ? ; original remote IP address (used to reset to LISTEN state)
.OrigRemotePort dw ? ; original remote port (used to reset to LISTEN state)
.t_state dd ? ; TCB state .t_state dd ? ; TCB state
.t_rxtshift dd ? .t_rxtshift dd ?
.t_rxtcur dd ? .t_rxtcur dd ?
@ -1491,8 +1488,6 @@ SOCKET_fork:
rep movsd rep movsd
and [eax + SOCKET.options], not SO_ACCEPTCON and [eax + SOCKET.options], not SO_ACCEPTCON
;;;;; call SOCKET_notify_owner
pop edi ecx esi pop edi ecx esi
ret ret
@ -1625,7 +1620,7 @@ SOCKET_check_owner:
;--------------------------------------------------- ;------------------------------------------------------
; ;
; SOCKET_process_end ; SOCKET_process_end
; ;
@ -1675,6 +1670,8 @@ SOCKET_process_end:
.tcp: .tcp:
;;; TODO
jmp .next_socket jmp .next_socket
.done: .done:
@ -1685,6 +1682,43 @@ SOCKET_process_end:
;-----------------------------------------------------------------
;
; SOCKET_is_connecting
;
; IN: eax = socket ptr
; OUT: /
;
;-----------------------------------------------------------------
align 4
SOCKET_is_connecting:
and [eax + SOCKET.options], not (SS_ISCONNECTED + SS_ISDISCONNECTING + SS_ISCONFIRMING)
or [eax + SOCKET.options], SS_ISCONNECTING
jmp SOCKET_notify_owner
;-----------------------------------------------------------------
;
; SOCKET_is_connected
;
; IN: eax = socket ptr
; OUT: /
;
;-----------------------------------------------------------------
align 4
SOCKET_is_connected:
and [eax + SOCKET.options], not (SS_ISCONNECTING + SS_ISDISCONNECTING + SS_ISCONFIRMING)
or [eax + SOCKET.options], SS_ISCONNECTED
jmp SOCKET_notify_owner
@ -1738,13 +1772,15 @@ SOCKET_is_disconnected:
align 4 align 4
SOCKET_cant_recv_more: SOCKET_cant_recv_more:
or [eax + SOCKET.options], SS_CANTRCVMORE
ret ret
;----------------------------------------------------------------- ;-----------------------------------------------------------------
; ;
; SOCKET_is_connected ; SOCKET_cant_send_more
; ;
; IN: eax = socket ptr ; IN: eax = socket ptr
; OUT: / ; OUT: /
@ -1752,10 +1788,8 @@ SOCKET_cant_recv_more:
;----------------------------------------------------------------- ;-----------------------------------------------------------------
align 4 align 4
SOCKET_is_connected: SOCKET_cant_send_more:
or [eax + SOCKET.options], SS_CANTSENDMORE
and [eax + SOCKET.options], not (SS_ISCONNECTING + SS_ISDISCONNECTING + SS_ISCONFIRMING) ret
or [eax + SOCKET.options], SS_ISCONNECTED
jmp SOCKET_notify_owner

View File

@ -60,7 +60,16 @@ SOCK_DGRAM equ 2
SOCK_RAW equ 3 SOCK_RAW equ 3
; Socket options ; Socket options
SO_ACCEPTCON equ 1 SO_ACCEPTCON equ 1 shl 0
SO_BROADCAST equ 1 shl 1
SO_DEBUG equ 1 shl 2
SO_DONTROUTE equ 1 shl 3
SO_KEEPALIVE equ 1 shl 4
SO_OOBINLINE equ 1 shl 5
SO_REUSEADDR equ 1 shl 6
SO_REUSEPORT equ 1 shl 7
SO_USELOOPBACK equ 1 shl 8
; Socket States ; Socket States
SS_NOFDREF equ 0x001 ; no file table ref any more SS_NOFDREF equ 0x001 ; no file table ref any more

View File

@ -173,9 +173,7 @@ TCP_close:
;;; TODO: update slow start threshold ;;; TODO: update slow start threshold
;;; TODO: release connection resources ;;; TODO: release connection resources
; Now, mark the socket as being disconnected call SOCKET_is_disconnected
mov [eax + SOCKET.state], 0 ;;; FIXME
ret ret

View File

@ -33,7 +33,7 @@ local .exit
cmp [ebx + SOCKET.Domain], AF_INET4 cmp [ebx + SOCKET.Domain], AF_INET4
jne .loop jne .loop
cmp [ebx + SOCKET.Protocol], IP_PROTO_TCP ;;; We should also check if family is AF_INET cmp [ebx + SOCKET.Protocol], IP_PROTO_TCP
jne .loop jne .loop
test [ebx + TCP_SOCKET.t_flags], TF_DELACK test [ebx + TCP_SOCKET.t_flags], TF_DELACK