From d53c9d4416de3471030bc9aa4255d020aaf40a5f Mon Sep 17 00:00:00 2001 From: Conrad Pankoff Date: Sun, 8 Sep 2019 17:16:40 +1000 Subject: [PATCH] Kernel: Use RefPtr instead of SocketHandle for TCPSocket clients Using a SocketHandle takes a lock on the socket, which we don't want to do. --- Kernel/Net/TCPSocket.cpp | 6 +++--- Kernel/Net/TCPSocket.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Kernel/Net/TCPSocket.cpp b/Kernel/Net/TCPSocket.cpp index acdb6c341e8..18ee8225fad 100644 --- a/Kernel/Net/TCPSocket.cpp +++ b/Kernel/Net/TCPSocket.cpp @@ -37,7 +37,7 @@ Lockable>& TCPSocket::sockets_by_tuple() return *s_map; } -SocketHandle TCPSocket::from_tuple(const IPv4SocketTuple& tuple) +RefPtr TCPSocket::from_tuple(const IPv4SocketTuple& tuple) { LOCKER(sockets_by_tuple().lock()); @@ -58,12 +58,12 @@ SocketHandle TCPSocket::from_tuple(const IPv4SocketTuple& tuple) return {}; } -SocketHandle TCPSocket::from_endpoints(const IPv4Address& local_address, u16 local_port, const IPv4Address& peer_address, u16 peer_port) +RefPtr TCPSocket::from_endpoints(const IPv4Address& local_address, u16 local_port, const IPv4Address& peer_address, u16 peer_port) { return from_tuple(IPv4SocketTuple(local_address, local_port, peer_address, peer_port)); } -SocketHandle TCPSocket::create_client(const IPv4Address& new_local_address, u16 new_local_port, const IPv4Address& new_peer_address, u16 new_peer_port) +RefPtr TCPSocket::create_client(const IPv4Address& new_local_address, u16 new_local_port, const IPv4Address& new_peer_address, u16 new_peer_port) { auto tuple = IPv4SocketTuple(new_local_address, new_local_port, new_peer_address, new_peer_port); diff --git a/Kernel/Net/TCPSocket.h b/Kernel/Net/TCPSocket.h index 349b16d71fd..f13591c3a20 100644 --- a/Kernel/Net/TCPSocket.h +++ b/Kernel/Net/TCPSocket.h @@ -122,10 +122,10 @@ public: void record_incoming_data(int); static Lockable>& sockets_by_tuple(); - static SocketHandle from_tuple(const IPv4SocketTuple& tuple); - static SocketHandle from_endpoints(const IPv4Address& local_address, u16 local_port, const IPv4Address& peer_address, u16 peer_port); + static RefPtr from_tuple(const IPv4SocketTuple& tuple); + static RefPtr from_endpoints(const IPv4Address& local_address, u16 local_port, const IPv4Address& peer_address, u16 peer_port); - SocketHandle create_client(const IPv4Address& local_address, u16 local_port, const IPv4Address& peer_address, u16 peer_port); + RefPtr create_client(const IPv4Address& local_address, u16 local_port, const IPv4Address& peer_address, u16 peer_port); protected: void set_direction(Direction direction) { m_direction = direction; }