Subversion Repositories Kolibri OS

Rev

Rev 2209 | Rev 2465 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2209 Rev 2434
Line 14... Line 14...
14
;;         Added a timer per socket to allow delays when        ;;
14
;;         Added a timer per socket to allow delays when        ;;
15
;;         rx window gets below 1KB                             ;;
15
;;         rx window gets below 1KB                             ;;
16
;;                                                              ;;
16
;;                                                              ;;
17
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
17
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 18... Line 18...
18
 
18
 
Line 19... Line 19...
19
$Revision: 2209 $
19
$Revision: 2434 $
20
 
20
 
21
 
21
 
Line 667... Line 667...
667
 
667
 
668
	inc	ecx
668
        inc     ecx
669
	add	esi, 8
669
        add     esi, 8
Line -... Line 670...
-
 
670
        jmp     .next_resendq
670
	jmp	.next_resendq
671
 
671
 
672
    @@:
672
    @@: mov	dword[esi + 4], 0
673
        mov     dword[esi + 4], 0
673
	inc	ecx
674
        inc     ecx
Line 674... Line 675...
674
	add	esi, 8
675
        add     esi, 8
Line 909... Line 910...
909
	je	@f		    ; found one
910
        je      @f                  ; found one
910
	inc	ecx
911
        inc     ecx
911
	add	esi, 8
912
        add     esi, 8
912
	jmp	.next_resendq
913
        jmp     .next_resendq
Line -... Line 914...
-
 
914
 
913
 
915
    @@:
914
    @@: mov	dword[esi + 4], 0
916
        mov     dword[esi + 4], 0
915
	inc	ecx
917
        inc     ecx
916
	add	esi, 8
918
        add     esi, 8
Line 917... Line 919...
917
	jmp	.next_resendq
919
        jmp     .next_resendq
Line 963... Line 965...
963
	jmp	.exit
965
        jmp     .exit
Line 964... Line 966...
964
 
966
 
965
  .data:
967
  .data:
966
    push    ecx
968
        push    ecx
967
	push    ecx edx
969
        push    ecx edx
968
    lea     ecx, [ebx+SOCKET.lock]
970
        lea     ecx, [ebx+SOCKET.mutex]
969
    call    mutex_lock
971
        call    mutex_lock
Line 970... Line 972...
970
        pop     edx ecx
972
        pop     edx ecx
971
 
973
 
Line 985... Line 987...
985
	mov	esi, edx
987
        mov     esi, edx
Line 986... Line 988...
986
 
988
 
987
	cld
989
        cld
Line 988... Line 990...
988
	rep	movsb	       ; copy the data across
990
        rep movsb              ; copy the data across
989
 
991
 
Line 990... Line 992...
990
    lea ecx,[ebx + SOCKET.lock]
992
        lea     ecx, [ebx + SOCKET.mutex]
991
    call mutex_unlock
993
        call    mutex_unlock
992
 
994
 
Line 1031... Line 1033...
1031
  .exit:
1033
  .exit:
1032
	ret
1034
        ret
1033
  .overflow:
1035
  .overflow:
1034
	; no place in buffer
1036
        ; no place in buffer
1035
	; so simply restore stack and exit
1037
        ; so simply restore stack and exit
1036
    lea ecx, [ebx + SOCKET.lock]
1038
        lea     ecx, [ebx + SOCKET.mutex]
1037
    call mutex_unlock
1039
        call    mutex_unlock
1038
	pop	eax ecx
1040
        pop     eax ecx
1039
	ret
1041
        ret
1040
endp
1042
endp
Line 1050... Line 1052...
1050
 
1052
 
1051
	; It was an ACK
1053
        ; It was an ACK
1052
	mov	[ebx + SOCKET.TCBState], TCB_FIN_WAIT_2
1054
        mov     [ebx + SOCKET.TCBState], TCB_FIN_WAIT_2
Line -... Line 1055...
-
 
1055
        jmp     .exit
1053
	jmp	.exit
1056
 
1054
 
1057
    @@:
1055
    @@: mov	[ebx + SOCKET.TCBState], TCB_CLOSING
1058
        mov     [ebx + SOCKET.TCBState], TCB_CLOSING
1056
	cmp	al, TH_FIN
1059
        cmp     al, TH_FIN
Line -... Line 1060...
-
 
1060
        je      @f
1057
	je	@f
1061
        mov     [ebx + SOCKET.TCBState], TCB_TIMED_WAIT
1058
	mov	[ebx + SOCKET.TCBState], TCB_TIMED_WAIT
1062
 
Line 1059... Line 1063...
1059
 
1063
    @@:
1060
    @@: lea	esi, [ebx + SOCKET.RCV_NXT]
1064
        lea     esi, [ebx + SOCKET.RCV_NXT]
1061
	call	inc_inet_esi
1065
        call    inc_inet_esi