518,6 → 518,10 |
TCP_checksum (eax + IP_SOCKET.LocalIP), (eax + IP_SOCKET.RemoteIP) |
mov [esi + TCP_header.Checksum], dx |
|
; unlock socket |
lea ecx, [eax + SOCKET.mutex] |
call mutex_unlock |
|
;---------------- |
; Send the packet |
|
533,6 → 537,10 |
|
inc [TCP_segments_tx] ; FIXME: correct interface? |
|
; unlock socket |
lea ecx, [eax + SOCKET.mutex] |
call mutex_lock |
|
; update advertised receive window |
test ecx, ecx |
jz @f |
580,13 → 588,8 |
ret |
|
.send_error: |
add esp, 4 |
pop eax |
add esp, 8 |
|
; unlock socket |
lea ecx, [eax + SOCKET.mutex] |
call mutex_unlock |
|
DEBUGF 1,"TCP_send: sending failed\n" |
|
or eax, -2 |