/kernel/branches/net/network/tcp_input.inc |
---|
639,7 → 639,7 |
mov eax, ebx |
call TCP_close |
;;;TODO: update stats |
jmp .drop_with_reset |
jmp .drop_with_reset_no_socket |
;---------------------------------------- |
; Remove data beyond right edge of window (700-736) |
770,7 → 770,7 |
;;; TODO: update stats (tcp drops) |
mov eax, ebx |
call TCP_close |
jmp .drop |
jmp .drop_no_socket |
.rst_close: |
DEBUGF 1,"TCP_input: Closing with reset\n" |
777,7 → 777,7 |
mov eax, ebx |
call TCP_close |
jmp .drop |
jmp .drop_no_socket |
.no_rst: |
1596,13 → 1596,12 |
ret |
.drop_with_reset_no_socket: |
DEBUGF 1,"TCP_input: Drop with reset (no socket)\n" |
test [edx + TCP_header.Flags], TH_RST |
jnz .drop_no_socket |
;;; if its a multicast/broadcast, also drop |
;;; TODO: if its a multicast/broadcast, also drop |
test [edx + TCP_header.Flags], TH_ACK |
jnz .respond_seg_ack |
/kernel/branches/net/network/tcp_subr.inc |
---|
318,7 → 318,7 |
;------------------------- |
; TCP_respond.segment: |
; TCP_respond_segment: |
; |
; IN: edx = segment ptr (a previously received segment) |
; edi = ptr to dest and src IPv4 addresses |
327,7 → 327,7 |
align 4 |
TCP_respond_segment: |
DEBUGF 1,"TCP_respond_segment: frame=%x flags=%c\n", edx, cl |
DEBUGF 1,"TCP_respond_segment: frame=%x flags=%x\n", edx, cl |
;--------------------- |
; Create the IP packet |
368,7 → 368,6 |
;--------------------- |
; Fill in the checksum |
.checksum: |
lea esi, [edi - sizeof.TCP_header] |
mov ecx, sizeof.TCP_header |
TCP_checksum (esi - sizeof.IPv4_header + IPv4_header.DestinationAddress),\ ; FIXME |
/kernel/branches/net/network/tcp_usreq.inc |
---|
57,6 → 57,7 |
.wait1: |
mov [eax + TCP_SOCKET.t_state], TCPS_FIN_WAIT_1 |
; TODO: set timer? |
pop ebx |
ret |
67,6 → 68,7 |
.disc: |
call SOCKET_is_disconnected |
; TODO: set timer? |
.ret: |
pop ebx |
ret |