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] |