Subversion Repositories Kolibri OS

Rev

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

Rev 3589 Rev 3626
Line 13... Line 13...
13
;;         GNU GENERAL PUBLIC LICENSE                              ;;
13
;;         GNU GENERAL PUBLIC LICENSE                              ;;
14
;;          Version 2, June 1991                                   ;;
14
;;          Version 2, June 1991                                   ;;
15
;;                                                                 ;;
15
;;                                                                 ;;
16
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
16
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 17... Line 17...
17
 
17
 
Line 18... Line 18...
18
$Revision: 3589 $
18
$Revision: 3626 $
Line 19... Line 19...
19
 
19
 
Line 125... Line 125...
125
        last_ack_sent           dd ?
125
        last_ack_sent           dd ?
Line 126... Line 126...
126
 
126
 
127
 
127
 
-
 
128
;-------
128
;-------
129
; Timers
129
; Timers
130
        timer_flags             dd ?
130
        timer_retransmission    dd ? ; rexmt
131
        timer_retransmission    dd ? ; rexmt
131
        timer_persist           dd ?
132
        timer_persist           dd ?
Line 213... Line 214...
213
        mov     ecx, 5
214
        mov     ecx, 5
214
        rep     stosd
215
        rep     stosd
Line 215... Line 216...
215
 
216
 
216
       @@:
217
       @@:
217
        pseudo_random eax
218
        pseudo_random eax
218
        cmp     ax, MIN_EPHEMERAL_PORT
219
        cmp     ax, EPHEMERAL_PORT_MIN
219
        jb      @r
220
        jb      @r
220
        cmp     ax, MAX_EPHEMERAL_PORT
221
        cmp     ax, EPHEMERAL_PORT_MAX
221
        ja      @r
222
        ja      @r
222
        xchg    al, ah
223
        xchg    al, ah
Line 223... Line 224...
223
        mov     [last_UDP_port], ax
224
        mov     [last_UDP_port], ax
224
 
225
 
225
       @@:
226
       @@:
226
        pseudo_random eax
227
        pseudo_random eax
227
        cmp     ax, MIN_EPHEMERAL_PORT
228
        cmp     ax, EPHEMERAL_PORT_MIN
228
        jb      @r
229
        jb      @r
229
        cmp     ax, MAX_EPHEMERAL_PORT
230
        cmp     ax, EPHEMERAL_PORT_MAX
230
        ja      @r
231
        ja      @r
Line 231... Line 232...
231
        xchg    al, ah
232
        xchg    al, ah
Line 430... Line 431...
430
        jmp     s_error
431
        jmp     s_error
Line 431... Line 432...
431
 
432
 
432
  .tcp:
433
  .tcp:
Line 433... Line 434...
433
  .udp:
434
  .udp:
434
 
435
 
435
        mov     ebx, [edx + 4]                  ; First, fill in the IP
436
        cmp     ebx, [edx + 4]                  ; First, fill in the IP
436
        test    ebx, ebx                        ; If IP is 0, use default
-
 
437
        jnz     @f
437
        test    ebx, ebx                        ; If IP is 0, use default
438
        mov     ebx, [NET_DEFAULT]
438
        jnz     @f
439
        mov     ebx, [IP_LIST + 4*ebx]
439
        mov     ebx, [IP_LIST + 4]      ;;;;; FIXME !i!i!i
Line 440... Line 440...
440
       @@:
440
       @@:
441
        mov     [eax + IP_SOCKET.LocalIP], ebx
441
        mov     [eax + IP_SOCKET.LocalIP], ebx
Line 481... Line 481...
481
        jmp     s_error
481
        jmp     s_error
Line 482... Line 482...
482
 
482
 
483
  .af_inet4:
483
  .af_inet4:
484
        cmp     [eax + IP_SOCKET.LocalIP], 0
484
        cmp     [eax + IP_SOCKET.LocalIP], 0
485
        jne     @f
485
        jne     @f
486
        push    [IP_LIST]                               ; FIXME
486
        push    [IP_LIST + 4]                               ; FIXME !i!i!i!
487
        pop     [eax + IP_SOCKET.LocalIP]
487
        pop     [eax + IP_SOCKET.LocalIP]
Line 488... Line 488...
488
       @@:
488
       @@:
489
 
489
 
Line 630... Line 630...
630
        cmp     [eax + TCP_SOCKET.LocalPort], 0
630
        cmp     [eax + TCP_SOCKET.LocalPort], 0
631
        je      s_error
631
        je      s_error
Line 632... Line 632...
632
 
632
 
633
        cmp     [eax + IP_SOCKET.LocalIP], 0
633
        cmp     [eax + IP_SOCKET.LocalIP], 0
634
        jne     @f
634
        jne     @f
635
        push    [IP_LIST]
635
        push    [IP_LIST + 4]           ;;; fixme!!!!
636
        pop     [eax + IP_SOCKET.LocalIP]
636
        pop     [eax + IP_SOCKET.LocalIP]
Line 637... Line 637...
637
       @@:
637
       @@:
638
 
638
 
Line 1119... Line 1119...
1119
  .bind:
1119
  .bind:
1120
        cmp     dword [edx+8], 0
1120
        cmp     dword [edx+8], 0
1121
        je      .unbind
1121
        je      .unbind
Line 1122... Line 1122...
1122
 
1122
 
1123
        movzx   edx, byte [edx + 9]
1123
        movzx   edx, byte [edx + 9]
1124
        cmp     edx, MAX_NET_DEVICES
1124
        cmp     edx, NET_DEVICES_MAX
Line 1125... Line 1125...
1125
        ja      s_error
1125
        ja      s_error
1126
 
1126
 
1127
        mov     edx, [NET_DRV_LIST + 4*edx]
1127
        mov     edx, [NET_DRV_LIST + 4*edx]