Subversion Repositories Kolibri OS

Rev

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

Rev 5565 Rev 5984
Line 15... Line 15...
15
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
15
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 16... Line 16...
16
 
16
 
Line 17... Line 17...
17
$Revision: 5442 $
17
$Revision: 5442 $
18
 
-
 
-
 
18
 
19
 
19
 
20
;-------------------------
-
 
21
;
20
;-----------------------------------------------------------------;
22
; TCP_usrclose
-
 
23
;
21
;                                                                 ;
24
; Move connection to next state, based on process close.
-
 
-
 
22
; TCP_usrclosed                                                   ;
-
 
23
;                                                                 ;
-
 
24
;  IN:  eax = socket ptr                                          ;
25
;
25
;                                                                 ;
26
;  IN:  eax = socket ptr
26
;  OUT: /                                                         ;
27
;
27
;                                                                 ;
Line 28... Line 28...
28
;-------------------------
28
;-----------------------------------------------------------------;
Line 35... Line 35...
35
        mov     ebx, [eax + TCP_SOCKET.t_state]
35
        mov     ebx, [eax + TCP_SOCKET.t_state]
36
        mov     ebx, dword [.switch + ebx*4]
36
        mov     ebx, dword [.switch + ebx*4]
37
        jmp     ebx
37
        jmp     ebx
Line 38... Line 38...
38
 
38
 
39
  .switch:
-
 
40
 
39
  .switch:
41
        dd      .close                  ; TCPS_CLOSED
40
        dd      .close                  ; TCPS_CLOSED
42
        dd      .close                  ; TCPS_LISTEN
41
        dd      .close                  ; TCPS_LISTEN
43
        dd      .close                  ; TCPS_SYN_SENT
42
        dd      .close                  ; TCPS_SYN_SENT
44
        dd      .wait1                  ; TCPS_SYN_RECEIVED
43
        dd      .wait1                  ; TCPS_SYN_RECEIVED
Line 48... Line 47...
48
        dd      .ret                    ; TCPS_CLOSING
47
        dd      .ret                    ; TCPS_CLOSING
49
        dd      .ret                    ; TCPS_LAST_ACK
48
        dd      .ret                    ; TCPS_LAST_ACK
50
        dd      .disc                   ; TCPS_FIN_WAIT_2
49
        dd      .disc                   ; TCPS_FIN_WAIT_2
51
        dd      .disc                   ; TCPS_TIMED_WAIT
50
        dd      .disc                   ; TCPS_TIMED_WAIT
Line 52... Line -...
52
 
-
 
53
 
51
 
54
  .close:
52
  .close:
55
        mov     [eax + TCP_SOCKET.t_state], TCPS_CLOSED
53
        mov     [eax + TCP_SOCKET.t_state], TCPS_CLOSED
56
        call    TCP_close
54
        call    TCP_close
57
        pop     ebx
55
        pop     ebx
Line 72... Line 70...
72
  .ret:
70
  .ret:
73
        pop     ebx
71
        pop     ebx
74
        ret
72
        ret
Line 75... Line 73...
75
 
73
 
76
 
-
 
-
 
74
 
77
;-------------------------
75
;-----------------------------------------------------------------;
78
;
-
 
-
 
76
;                                                                 ;
79
; TCP_connect
77
; TCP_connect                                                     ;
-
 
78
;                                                                 ;
80
;
79
;  IN:  eax = socket ptr                                          ;
-
 
80
;                                                                 ;
81
;  IN:  eax = socket ptr
81
;  OUT: eax = 0 on success                                        ;
82
;  OUT: eax = 0 ok / -1 error
-
 
-
 
82
;       eax = -1 on error                                         ;
83
;       ebx = error code
83
;       ebx = error code on error                                 ;
84
;
84
;                                                                 ;
85
;-------------------------
85
;-----------------------------------------------------------------;
Line 86... Line 86...
86
align 4
86
align 4
87
TCP_connect:
87
TCP_connect: