ARP_IP_to_MAC no longer blocks. Updated SOCKET_process_end (altough kernel does not call it yet). Updated TCP_output to time a retransmit on ARP error.

git-svn-id: svn://kolibrios.org@2629 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
hidnplayr
2012-04-18 16:01:38 +00:00
parent 2f09cfb23e
commit 1e3b48239a
4 changed files with 28 additions and 42 deletions

View File

@@ -1323,6 +1323,8 @@ SOCKET_notify_owner:
; socket exists, now try to flag an event to the application
mov eax, [eax + SOCKET.PID]
test eax, eax
jz .error2
mov ecx, 1
mov esi, TASK_DATA + TASKDATA.pid
@@ -1719,15 +1721,11 @@ SOCKET_process_end:
mov [ebx + SOCKET.PID], 0
cmp [ebx + SOCKET.Protocol], IP_PROTO_UDP
je .udp
cmp [ebx + SOCKET.Protocol], IP_PROTO_TCP
je .tcp
jmp .next_socket ; kill all sockets for given PID
; The socket is stateless, just kill it right away!
.udp:
mov eax, ebx
mov ebx, [ebx + SOCKET.NextPtr]
call SOCKET_free
@@ -1735,9 +1733,11 @@ SOCKET_process_end:
.tcp:
;;; TODO
jmp .next_socket
push [ebx + SOCKET.NextPtr]
mov eax, ebx
call TCP_close
pop ebx
jmp .test_socket
.done:
pop ebx