Subversion Repositories Kolibri OS

Rev

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

Rev 3736 Rev 3737
Line 357... Line 357...
357
;****************************************************************************
357
;****************************************************************************
358
read_incoming_data:
358
read_incoming_data:
Line 359... Line 359...
359
 
359
 
Line 360... Line -...
360
        DEBUGF  1, "Reading incoming data\n"
-
 
361
 
-
 
362
        mcall   40, EVM_STACK + EVM_BUTTON
360
        DEBUGF  1, "Reading incoming data\n"
363
 
361
 
364
        mov     eax, [buf_ptr]
-
 
365
        mov     [pos], eax
362
        mov     eax, [buf_ptr]
366
 
-
 
367
  .read:
-
 
368
        mcall   23, 100         ; 1 second timeout
-
 
369
        cmp     eax, EV_BUTTON
-
 
370
        je      exit
363
        mov     [pos], eax
371
  .read_dontwait:
364
  .read:
372
        mcall   recv, [socketnum], [pos], BUFFERSIZE, MSG_DONTWAIT
365
        mcall   recv, [socketnum], [pos], BUFFERSIZE, 0
373
        inc     eax             ; -1 = error (socket closed?)
366
        inc     eax             ; -1 = error (socket closed?)
374
        jz      .no_more_data
367
        jz      .no_more_data
Line 375... Line 368...
375
        dec     eax             ; 0 bytes...
368
        dec     eax             ; 0 bytes...
Line 376... Line 369...
376
        jz      .read           ; timeout
369
        jz      .read
377
 
370
 
Line 383... Line 376...
383
        mov     ecx, [buf_size]
376
        mov     ecx, [buf_size]
384
        add     ecx, BUFFERSIZE
377
        add     ecx, BUFFERSIZE
385
        mcall   68, 20, , [buf_ptr]     ; reallocate memory block (make bigger)
378
        mcall   68, 20, , [buf_ptr]     ; reallocate memory block (make bigger)
386
        ; TODO: parse header and resize buffer only once
379
        ; TODO: parse header and resize buffer only once
387
        pop     eax
380
        pop     eax
388
 
-
 
389
        cmp     eax, BUFFERSIZE
-
 
390
        je      .read_dontwait
-
 
391
        jmp     .read
381
        jmp     .read
Line 392... Line 382...
392
        
382
        
393
  .no_more_data:
383
  .no_more_data:
394
        mov     eax, [buf_ptr]
384
        mov     eax, [buf_ptr]