Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5442 → Rev 5441

/kernel/trunk/network/tcp_output.inc
90,9 → 90,10
 
cmp ebx, [eax + STREAM_SOCKET.snd.size]
jae @f
 
and dl, not (TH_FIN)
 
@@:
 
inc ecx
jmp .no_force
 
112,6 → 113,7
@@:
sub esi, ebx
 
 
;------------------------
; check for window shrink (107)
 
144,6 → 146,7
 
cmp esi, [eax + TCP_SOCKET.t_maxseg]
jbe @f
 
mov esi, [eax + TCP_SOCKET.t_maxseg]
or [temp_bits], TCP_BIT_SENDALOT
@@:
157,6 → 160,7
cmp edi, [eax + STREAM_SOCKET.snd.size]
jae @f
and dl, not (TH_FIN)
 
@@:
 
;-------------------------------
399,50 → 403,6
or [temp_bits], TCP_BIT_SENDALOT
.no_overflow:
 
; Update stats
test esi, esi
jz .zero_data
 
cmp [eax + TCP_SOCKET.t_force], 1
jne @f
cmp esi, 1
jne @f
inc [TCPS_sndprobe]
jmp .eos
@@:
 
mov ebx, [eax + TCP_SOCKET.SND_NXT]
cmp ebx, [eax + TCP_SOCKET.SND_MAX]
jae @f
inc [TCPS_sndrexmitpack]
add [TCPS_sndrexmitbyte], esi
jmp .eos
@@:
inc [TCPS_sndpack]
add [TCPS_sndbyte], esi
jmp .eos
 
.zero_data:
test [eax + TCP_SOCKET.t_flags], TF_ACKNOW
jz @f
inc [TCPS_sndacks]
jmp .eos
@@:
test dl, TH_SYN + TH_FIN + TH_RST
jz @f
inc [TCPS_sndctrl]
jmp .eos
@@:
mov ebx, [eax + TCP_SOCKET.SND_UP]
cmp ebx, [eax + TCP_SOCKET.SND_UNA]
jb @f
inc [TCPS_sndurg]
jmp .eos
@@:
inc [TCPS_sndwinup]
 
.eos:
 
;----------------------------------------------------
; Calculate the receive window.
; Dont shrink window, but avoid silly window syndrome
509,8 → 469,8
call IPv4_output
jz .ip_error
 
;------------------------------------------
; Move TCP header from stack to TCP segment
;-----------------------------------------
; Move TCP header from stack to TCP packet
 
push ecx
mov ecx, [esp + 4]
544,7 → 504,7
test ecx, ecx
jz .nodata
mov edx, [eax + TCP_SOCKET.SND_NXT]
add [eax + TCP_SOCKET.SND_NXT], ecx ; update sequence number
add [eax + TCP_SOCKET.SND_NXT], ecx ; update sequence number <<< CHECKME
sub edx, [eax + TCP_SOCKET.SND_UNA] ; offset
add eax, STREAM_SOCKET.snd
call SOCKET_ring_read
576,7 → 536,7
je @f
mov [eax + TCP_SOCKET.t_rtt], 1 ; nope, start transmission timer
mov [eax + TCP_SOCKET.t_rtseq], edi
inc [TCPS_segstimed]
;TODO: update stats
@@:
 
; set retransmission timer if not already set, and not doing an ACK or keepalive probe
624,7 → 584,6
 
call NET_ptr_to_num4
inc [TCP_segments_tx + edi]
inc [TCPS_sndtotal]
 
; update advertised receive window
test ecx, ecx