799,10 → 799,9 |
|
DEBUGF 1,"SOCKET_send: UDP\n" |
|
mov [esp+32], ecx |
call UDP_output |
cmp eax, -1 |
je s_error |
|
mov [esp+32], eax |
ret |
|
|
814,13 → 813,11 |
push eax |
add eax, STREAM_SOCKET.snd |
call SOCKET_ring_write |
mov [esp+32], ecx |
pop eax |
|
test ecx, ecx |
jz s_error |
call TCP_output |
|
call TCP_output |
mov [esp+32], eax |
ret |
|
|
829,22 → 826,19 |
|
DEBUGF 1,"type: IP\n" |
|
mov [esp+32], ecx |
call IPv4_output_raw |
cmp eax, -1 |
je s_error |
|
mov [esp+32], eax |
ret |
|
|
align 4 |
SOCKET_send_icmp: |
|
DEBUGF 1,"SOCKET_send: ICMP\n" |
|
mov [esp+32], ecx |
call ICMP_output_raw |
cmp eax, -1 |
je s_error |
|
mov [esp+32], eax |
ret |
|
|
1142,7 → 1136,6 |
DEBUGF 1,"SOCKET_ring_write: ringbuff=%x ptr=%x size=%u\n", eax, esi, ecx |
|
add [eax + RING_BUFFER.size], ecx |
jc .way_too_large |
cmp [eax + RING_BUFFER.size], SOCKET_MAXDATA |
ja .too_large |
|
1181,22 → 1174,15 |
sub [eax + RING_BUFFER.size], SOCKET_MAXDATA |
sub ecx, [eax + RING_BUFFER.size] |
mov [eax + RING_BUFFER.size], SOCKET_MAXDATA |
ja .copy |
|
.full: |
test ecx, ecx |
jnz .copy |
|
DEBUGF 2,"SOCKET_ring_write: ring buffer is full!\n" |
xor ecx, ecx |
ret |
|
.way_too_large: |
sub [eax + RING_BUFFER.size], ecx |
mov ecx, SOCKET_MAXDATA |
sub ecx, [eax + RING_BUFFER.size] |
ja .copy |
jmp .full |
|
|
|
;----------------------------------------------------------------- |
; |
; SOCKET_ring_read |