summaryrefslogtreecommitdiff
path: root/Kernel/Net
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2021-09-07 13:39:11 +0200
committerAndreas Kling <kling@serenityos.org>2021-09-07 13:53:14 +0200
commit4a9c18afb9b9c7fde698e93700e661d66e3ed34d (patch)
treebe50cd7629139e1c3d6c7df5bcffa7a0d5a1e898 /Kernel/Net
parentdbd639a2d8d288691e6cffd29e4ff2ec0bae6982 (diff)
downloadserenity-4a9c18afb9b9c7fde698e93700e661d66e3ed34d.zip
Kernel: Rename FileDescription => OpenFileDescription
Dr. POSIX really calls these "open file description", not just "file description", so let's call them exactly that. :^)
Diffstat (limited to 'Kernel/Net')
-rw-r--r--Kernel/Net/IPv4Socket.cpp24
-rw-r--r--Kernel/Net/IPv4Socket.h22
-rw-r--r--Kernel/Net/LocalSocket.cpp50
-rw-r--r--Kernel/Net/LocalSocket.h54
-rw-r--r--Kernel/Net/Socket.cpp8
-rw-r--r--Kernel/Net/Socket.h18
-rw-r--r--Kernel/Net/TCPSocket.cpp6
-rw-r--r--Kernel/Net/TCPSocket.h4
-rw-r--r--Kernel/Net/UDPSocket.cpp2
-rw-r--r--Kernel/Net/UDPSocket.h2
10 files changed, 95 insertions, 95 deletions
diff --git a/Kernel/Net/IPv4Socket.cpp b/Kernel/Net/IPv4Socket.cpp
index 0e88cc1fc1..0a2ad95a26 100644
--- a/Kernel/Net/IPv4Socket.cpp
+++ b/Kernel/Net/IPv4Socket.cpp
@@ -7,7 +7,7 @@
#include <AK/Singleton.h>
#include <AK/StringBuilder.h>
#include <Kernel/Debug.h>
-#include <Kernel/FileSystem/FileDescription.h>
+#include <Kernel/FileSystem/OpenFileDescription.h>
#include <Kernel/Net/ARP.h>
#include <Kernel/Net/ICMP.h>
#include <Kernel/Net/IPv4.h>
@@ -28,7 +28,7 @@ namespace Kernel {
static Singleton<MutexProtected<IPv4Socket::List>> s_all_sockets;
-using BlockFlags = Thread::FileDescriptionBlocker::BlockFlags;
+using BlockFlags = Thread::OpenFileDescriptionBlocker::BlockFlags;
MutexProtected<IPv4Socket::List>& IPv4Socket::all_sockets()
{
@@ -141,7 +141,7 @@ KResult IPv4Socket::listen(size_t backlog)
return protocol_listen(result.did_allocate);
}
-KResult IPv4Socket::connect(FileDescription& description, Userspace<const sockaddr*> address, socklen_t address_size, ShouldBlock should_block)
+KResult IPv4Socket::connect(OpenFileDescription& description, Userspace<const sockaddr*> address, socklen_t address_size, ShouldBlock should_block)
{
if (address_size != sizeof(sockaddr_in))
return set_so_error(EINVAL);
@@ -166,7 +166,7 @@ KResult IPv4Socket::connect(FileDescription& description, Userspace<const sockad
return protocol_connect(description, should_block);
}
-bool IPv4Socket::can_read(const FileDescription&, size_t) const
+bool IPv4Socket::can_read(const OpenFileDescription&, size_t) const
{
if (m_role == Role::Listener)
return can_accept();
@@ -175,7 +175,7 @@ bool IPv4Socket::can_read(const FileDescription&, size_t) const
return m_can_read;
}
-bool IPv4Socket::can_write(const FileDescription&, size_t) const
+bool IPv4Socket::can_write(const OpenFileDescription&, size_t) const
{
return true;
}
@@ -192,7 +192,7 @@ PortAllocationResult IPv4Socket::allocate_local_port_if_needed()
return { m_local_port, true };
}
-KResultOr<size_t> IPv4Socket::sendto(FileDescription&, const UserOrKernelBuffer& data, size_t data_length, [[maybe_unused]] int flags, Userspace<const sockaddr*> addr, socklen_t addr_length)
+KResultOr<size_t> IPv4Socket::sendto(OpenFileDescription&, const UserOrKernelBuffer& data, size_t data_length, [[maybe_unused]] int flags, Userspace<const sockaddr*> addr, socklen_t addr_length)
{
MutexLocker locker(mutex());
@@ -251,7 +251,7 @@ KResultOr<size_t> IPv4Socket::sendto(FileDescription&, const UserOrKernelBuffer&
return nsent_or_error;
}
-KResultOr<size_t> IPv4Socket::receive_byte_buffered(FileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>)
+KResultOr<size_t> IPv4Socket::receive_byte_buffered(OpenFileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>)
{
MutexLocker locker(mutex());
if (m_receive_buffer->is_empty()) {
@@ -287,7 +287,7 @@ KResultOr<size_t> IPv4Socket::receive_byte_buffered(FileDescription& description
return nreceived_or_error;
}
-KResultOr<size_t> IPv4Socket::receive_packet_buffered(FileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*> addr, Userspace<socklen_t*> addr_length, Time& packet_timestamp)
+KResultOr<size_t> IPv4Socket::receive_packet_buffered(OpenFileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*> addr, Userspace<socklen_t*> addr_length, Time& packet_timestamp)
{
MutexLocker locker(mutex());
ReceivedPacket packet;
@@ -379,7 +379,7 @@ KResultOr<size_t> IPv4Socket::receive_packet_buffered(FileDescription& descripti
return protocol_receive(ReadonlyBytes { packet.data.value().data(), packet.data.value().size() }, buffer, buffer_length, flags);
}
-KResultOr<size_t> IPv4Socket::recvfrom(FileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*> user_addr, Userspace<socklen_t*> user_addr_length, Time& packet_timestamp)
+KResultOr<size_t> IPv4Socket::recvfrom(OpenFileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*> user_addr, Userspace<socklen_t*> user_addr_length, Time& packet_timestamp)
{
if (user_addr_length) {
socklen_t addr_length;
@@ -450,7 +450,7 @@ bool IPv4Socket::did_receive(const IPv4Address& source_address, u16 source_port,
return true;
}
-String IPv4Socket::absolute_path(const FileDescription&) const
+String IPv4Socket::absolute_path(const OpenFileDescription&) const
{
if (m_role == Role::None)
return "socket";
@@ -536,7 +536,7 @@ KResult IPv4Socket::setsockopt(int level, int option, Userspace<const void*> use
}
}
-KResult IPv4Socket::getsockopt(FileDescription& description, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size)
+KResult IPv4Socket::getsockopt(OpenFileDescription& description, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size)
{
if (level != IPPROTO_IP)
return Socket::getsockopt(description, level, option, value, value_size);
@@ -563,7 +563,7 @@ KResult IPv4Socket::getsockopt(FileDescription& description, int level, int opti
}
}
-KResult IPv4Socket::ioctl(FileDescription&, unsigned request, Userspace<void*> arg)
+KResult IPv4Socket::ioctl(OpenFileDescription&, unsigned request, Userspace<void*> arg)
{
REQUIRE_PROMISE(inet);
diff --git a/Kernel/Net/IPv4Socket.h b/Kernel/Net/IPv4Socket.h
index 0a52e5a181..4d6cbcc35b 100644
--- a/Kernel/Net/IPv4Socket.h
+++ b/Kernel/Net/IPv4Socket.h
@@ -33,18 +33,18 @@ public:
virtual KResult close() override;
virtual KResult bind(Userspace<const sockaddr*>, socklen_t) override;
- virtual KResult connect(FileDescription&, Userspace<const sockaddr*>, socklen_t, ShouldBlock = ShouldBlock::Yes) override;
+ virtual KResult connect(OpenFileDescription&, Userspace<const sockaddr*>, socklen_t, ShouldBlock = ShouldBlock::Yes) override;
virtual KResult listen(size_t) override;
virtual void get_local_address(sockaddr*, socklen_t*) override;
virtual void get_peer_address(sockaddr*, socklen_t*) override;
- virtual bool can_read(const FileDescription&, size_t) const override;
- virtual bool can_write(const FileDescription&, size_t) const override;
- virtual KResultOr<size_t> sendto(FileDescription&, const UserOrKernelBuffer&, size_t, int, Userspace<const sockaddr*>, socklen_t) override;
- virtual KResultOr<size_t> recvfrom(FileDescription&, UserOrKernelBuffer&, size_t, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) override;
+ virtual bool can_read(const OpenFileDescription&, size_t) const override;
+ virtual bool can_write(const OpenFileDescription&, size_t) const override;
+ virtual KResultOr<size_t> sendto(OpenFileDescription&, const UserOrKernelBuffer&, size_t, int, Userspace<const sockaddr*>, socklen_t) override;
+ virtual KResultOr<size_t> recvfrom(OpenFileDescription&, UserOrKernelBuffer&, size_t, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) override;
virtual KResult setsockopt(int level, int option, Userspace<const void*>, socklen_t) override;
- virtual KResult getsockopt(FileDescription&, int level, int option, Userspace<void*>, Userspace<socklen_t*>) override;
+ virtual KResult getsockopt(OpenFileDescription&, int level, int option, Userspace<void*>, Userspace<socklen_t*>) override;
- virtual KResult ioctl(FileDescription&, unsigned request, Userspace<void*> arg) override;
+ virtual KResult ioctl(OpenFileDescription&, unsigned request, Userspace<void*> arg) override;
bool did_receive(const IPv4Address& peer_address, u16 peer_port, ReadonlyBytes, const Time&);
@@ -61,7 +61,7 @@ public:
IPv4SocketTuple tuple() const { return IPv4SocketTuple(m_local_address, m_local_port, m_peer_address, m_peer_port); }
- String absolute_path(const FileDescription& description) const override;
+ String absolute_path(const OpenFileDescription& description) const override;
u8 ttl() const { return m_ttl; }
@@ -81,7 +81,7 @@ protected:
virtual KResult protocol_listen([[maybe_unused]] bool did_allocate_port) { return KSuccess; }
virtual KResultOr<size_t> protocol_receive(ReadonlyBytes /* raw_ipv4_packet */, UserOrKernelBuffer&, size_t, int) { return ENOTIMPL; }
virtual KResultOr<size_t> protocol_send(const UserOrKernelBuffer&, size_t) { return ENOTIMPL; }
- virtual KResult protocol_connect(FileDescription&, ShouldBlock) { return KSuccess; }
+ virtual KResult protocol_connect(OpenFileDescription&, ShouldBlock) { return KSuccess; }
virtual KResultOr<u16> protocol_allocate_local_port() { return ENOPROTOOPT; }
virtual bool protocol_is_disconnected() const { return false; }
@@ -95,8 +95,8 @@ protected:
private:
virtual bool is_ipv4() const override { return true; }
- KResultOr<size_t> receive_byte_buffered(FileDescription&, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>);
- KResultOr<size_t> receive_packet_buffered(FileDescription&, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&);
+ KResultOr<size_t> receive_byte_buffered(OpenFileDescription&, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>);
+ KResultOr<size_t> receive_packet_buffered(OpenFileDescription&, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&);
void set_can_read(bool);
diff --git a/Kernel/Net/LocalSocket.cpp b/Kernel/Net/LocalSocket.cpp
index 489ce80b6b..43c59e0a46 100644
--- a/Kernel/Net/LocalSocket.cpp
+++ b/Kernel/Net/LocalSocket.cpp
@@ -7,7 +7,7 @@
#include <AK/Singleton.h>
#include <AK/StringBuilder.h>
#include <Kernel/Debug.h>
-#include <Kernel/FileSystem/FileDescription.h>
+#include <Kernel/FileSystem/OpenFileDescription.h>
#include <Kernel/FileSystem/VirtualFileSystem.h>
#include <Kernel/Locking/Mutex.h>
#include <Kernel/Locking/MutexProtected.h>
@@ -51,7 +51,7 @@ KResultOr<NonnullRefPtr<LocalSocket>> LocalSocket::try_create(int type)
KResultOr<SocketPair> LocalSocket::try_create_connected_pair(int type)
{
auto socket = TRY(LocalSocket::try_create(type));
- auto description1 = TRY(FileDescription::try_create(*socket));
+ auto description1 = TRY(OpenFileDescription::try_create(*socket));
TRY(socket->try_set_path("[socketpair]"sv));
@@ -60,7 +60,7 @@ KResultOr<SocketPair> LocalSocket::try_create_connected_pair(int type)
socket->set_connect_side_role(Role::Connected);
socket->set_role(Role::Accepted);
- auto description2 = TRY(FileDescription::try_create(*socket));
+ auto description2 = TRY(OpenFileDescription::try_create(*socket));
return SocketPair { move(description1), move(description2) };
}
@@ -155,7 +155,7 @@ KResult LocalSocket::bind(Userspace<const sockaddr*> user_address, socklen_t add
return KSuccess;
}
-KResult LocalSocket::connect(FileDescription& description, Userspace<const sockaddr*> address, socklen_t address_size, ShouldBlock)
+KResult LocalSocket::connect(OpenFileDescription& description, Userspace<const sockaddr*> address, socklen_t address_size, ShouldBlock)
{
VERIFY(!m_bound);
if (address_size != sizeof(sockaddr_un))
@@ -212,7 +212,7 @@ KResult LocalSocket::connect(FileDescription& description, Userspace<const socka
return KSuccess;
}
- auto unblock_flags = Thread::FileDescriptionBlocker::BlockFlags::None;
+ auto unblock_flags = Thread::OpenFileDescriptionBlocker::BlockFlags::None;
if (Thread::current()->block<Thread::ConnectBlocker>({}, description, unblock_flags).was_interrupted()) {
set_connect_side_role(Role::None);
return set_so_error(EINTR);
@@ -220,7 +220,7 @@ KResult LocalSocket::connect(FileDescription& description, Userspace<const socka
dbgln_if(LOCAL_SOCKET_DEBUG, "LocalSocket({}) connect({}) status is {}", this, *m_path, to_string(setup_state()));
- if (!has_flag(unblock_flags, Thread::FileDescriptionBlocker::BlockFlags::Connect)) {
+ if (!has_flag(unblock_flags, Thread::OpenFileDescriptionBlocker::BlockFlags::Connect)) {
set_connect_side_role(Role::None);
return set_so_error(ECONNREFUSED);
}
@@ -243,7 +243,7 @@ KResult LocalSocket::listen(size_t backlog)
return KSuccess;
}
-KResult LocalSocket::attach(FileDescription& description)
+KResult LocalSocket::attach(OpenFileDescription& description)
{
VERIFY(!m_accept_side_fd_open);
if (m_connect_side_role == Role::None) {
@@ -258,7 +258,7 @@ KResult LocalSocket::attach(FileDescription& description)
return KSuccess;
}
-void LocalSocket::detach(FileDescription& description)
+void LocalSocket::detach(OpenFileDescription& description)
{
if (m_connect_side_fd == &description) {
m_connect_side_fd = nullptr;
@@ -270,7 +270,7 @@ void LocalSocket::detach(FileDescription& description)
evaluate_block_conditions();
}
-bool LocalSocket::can_read(const FileDescription& description, size_t) const
+bool LocalSocket::can_read(const OpenFileDescription& description, size_t) const
{
auto role = this->role(description);
if (role == Role::Listener)
@@ -282,7 +282,7 @@ bool LocalSocket::can_read(const FileDescription& description, size_t) const
return false;
}
-bool LocalSocket::has_attached_peer(const FileDescription& description) const
+bool LocalSocket::has_attached_peer(const OpenFileDescription& description) const
{
auto role = this->role(description);
if (role == Role::Accepted)
@@ -292,7 +292,7 @@ bool LocalSocket::has_attached_peer(const FileDescription& description) const
return false;
}
-bool LocalSocket::can_write(const FileDescription& description, size_t) const
+bool LocalSocket::can_write(const OpenFileDescription& description, size_t) const
{
auto role = this->role(description);
if (role == Role::Accepted)
@@ -302,7 +302,7 @@ bool LocalSocket::can_write(const FileDescription& description, size_t) const
return false;
}
-KResultOr<size_t> LocalSocket::sendto(FileDescription& description, const UserOrKernelBuffer& data, size_t data_size, int, Userspace<const sockaddr*>, socklen_t)
+KResultOr<size_t> LocalSocket::sendto(OpenFileDescription& description, const UserOrKernelBuffer& data, size_t data_size, int, Userspace<const sockaddr*>, socklen_t)
{
if (!has_attached_peer(description))
return set_so_error(EPIPE);
@@ -315,7 +315,7 @@ KResultOr<size_t> LocalSocket::sendto(FileDescription& description, const UserOr
return nwritten_or_error;
}
-DoubleBuffer* LocalSocket::receive_buffer_for(FileDescription& description)
+DoubleBuffer* LocalSocket::receive_buffer_for(OpenFileDescription& description)
{
auto role = this->role(description);
if (role == Role::Accepted)
@@ -325,7 +325,7 @@ DoubleBuffer* LocalSocket::receive_buffer_for(FileDescription& description)
return nullptr;
}
-DoubleBuffer* LocalSocket::send_buffer_for(FileDescription& description)
+DoubleBuffer* LocalSocket::send_buffer_for(OpenFileDescription& description)
{
auto role = this->role(description);
if (role == Role::Connected)
@@ -335,7 +335,7 @@ DoubleBuffer* LocalSocket::send_buffer_for(FileDescription& description)
return nullptr;
}
-KResultOr<size_t> LocalSocket::recvfrom(FileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_size, int, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&)
+KResultOr<size_t> LocalSocket::recvfrom(OpenFileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_size, int, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&)
{
auto* socket_buffer = receive_buffer_for(description);
if (!socket_buffer)
@@ -347,7 +347,7 @@ KResultOr<size_t> LocalSocket::recvfrom(FileDescription& description, UserOrKern
return set_so_error(EAGAIN);
}
} else if (!can_read(description, 0)) {
- auto unblock_flags = Thread::FileDescriptionBlocker::BlockFlags::None;
+ auto unblock_flags = Thread::OpenFileDescriptionBlocker::BlockFlags::None;
if (Thread::current()->block<Thread::ReadBlocker>({}, description, unblock_flags).was_interrupted())
return set_so_error(EINTR);
}
@@ -367,7 +367,7 @@ StringView LocalSocket::socket_path() const
return m_path->view();
}
-String LocalSocket::absolute_path(const FileDescription& description) const
+String LocalSocket::absolute_path(const OpenFileDescription& description) const
{
StringBuilder builder;
builder.append("socket:");
@@ -393,7 +393,7 @@ String LocalSocket::absolute_path(const FileDescription& description) const
return builder.to_string();
}
-KResult LocalSocket::getsockopt(FileDescription& description, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size)
+KResult LocalSocket::getsockopt(OpenFileDescription& description, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size)
{
if (level != SOL_SOCKET)
return Socket::getsockopt(description, level, option, value, value_size);
@@ -432,7 +432,7 @@ KResult LocalSocket::getsockopt(FileDescription& description, int level, int opt
}
}
-KResult LocalSocket::ioctl(FileDescription& description, unsigned request, Userspace<void*> arg)
+KResult LocalSocket::ioctl(OpenFileDescription& description, unsigned request, Userspace<void*> arg)
{
switch (request) {
case FIONREAD: {
@@ -444,7 +444,7 @@ KResult LocalSocket::ioctl(FileDescription& description, unsigned request, Users
return ENOTTY;
}
-KResult LocalSocket::chmod(FileDescription&, mode_t mode)
+KResult LocalSocket::chmod(OpenFileDescription&, mode_t mode)
{
if (m_file)
return m_file->chmod(mode);
@@ -453,7 +453,7 @@ KResult LocalSocket::chmod(FileDescription&, mode_t mode)
return KSuccess;
}
-KResult LocalSocket::chown(FileDescription&, UserID uid, GroupID gid)
+KResult LocalSocket::chown(OpenFileDescription&, UserID uid, GroupID gid)
{
if (m_file)
return m_file->chown(uid, gid);
@@ -467,7 +467,7 @@ KResult LocalSocket::chown(FileDescription&, UserID uid, GroupID gid)
return KSuccess;
}
-NonnullRefPtrVector<FileDescription>& LocalSocket::recvfd_queue_for(const FileDescription& description)
+NonnullRefPtrVector<OpenFileDescription>& LocalSocket::recvfd_queue_for(const OpenFileDescription& description)
{
auto role = this->role(description);
if (role == Role::Connected)
@@ -477,7 +477,7 @@ NonnullRefPtrVector<FileDescription>& LocalSocket::recvfd_queue_for(const FileDe
VERIFY_NOT_REACHED();
}
-NonnullRefPtrVector<FileDescription>& LocalSocket::sendfd_queue_for(const FileDescription& description)
+NonnullRefPtrVector<OpenFileDescription>& LocalSocket::sendfd_queue_for(const OpenFileDescription& description)
{
auto role = this->role(description);
if (role == Role::Connected)
@@ -487,7 +487,7 @@ NonnullRefPtrVector<FileDescription>& LocalSocket::sendfd_queue_for(const FileDe
VERIFY_NOT_REACHED();
}
-KResult LocalSocket::sendfd(const FileDescription& socket_description, FileDescription& passing_description)
+KResult LocalSocket::sendfd(const OpenFileDescription& socket_description, OpenFileDescription& passing_description)
{
MutexLocker locker(mutex());
auto role = this->role(socket_description);
@@ -502,7 +502,7 @@ KResult LocalSocket::sendfd(const FileDescription& socket_description, FileDescr
return KSuccess;
}
-KResultOr<NonnullRefPtr<FileDescription>> LocalSocket::recvfd(const FileDescription& socket_description)
+KResultOr<NonnullRefPtr<OpenFileDescription>> LocalSocket::recvfd(const OpenFileDescription& socket_description)
{
MutexLocker locker(mutex());
auto role = this->role(socket_description);
diff --git a/Kernel/Net/LocalSocket.h b/Kernel/Net/LocalSocket.h
index ce4abdba5a..315fe8d959 100644
--- a/Kernel/Net/LocalSocket.h
+++ b/Kernel/Net/LocalSocket.h
@@ -12,11 +12,11 @@
namespace Kernel {
-class FileDescription;
+class OpenFileDescription;
struct SocketPair {
- NonnullRefPtr<FileDescription> description0;
- NonnullRefPtr<FileDescription> description1;
+ NonnullRefPtr<OpenFileDescription> description0;
+ NonnullRefPtr<OpenFileDescription> description1;
};
class LocalSocket final : public Socket {
@@ -26,40 +26,40 @@ public:
static KResultOr<SocketPair> try_create_connected_pair(int type);
virtual ~LocalSocket() override;
- KResult sendfd(const FileDescription& socket_description, FileDescription& passing_description);
- KResultOr<NonnullRefPtr<FileDescription>> recvfd(const FileDescription& socket_description);
+ KResult sendfd(const OpenFileDescription& socket_description, OpenFileDescription& passing_description);
+ KResultOr<NonnullRefPtr<OpenFileDescription>> recvfd(const OpenFileDescription& socket_description);
static void for_each(Function<void(const LocalSocket&)>);
StringView socket_path() const;
- String absolute_path(const FileDescription& description) const override;
+ String absolute_path(const OpenFileDescription& description) const override;
// ^Socket
virtual KResult bind(Userspace<const sockaddr*>, socklen_t) override;
- virtual KResult connect(FileDescription&, Userspace<const sockaddr*>, socklen_t, ShouldBlock = ShouldBlock::Yes) override;
+ virtual KResult connect(OpenFileDescription&, Userspace<const sockaddr*>, socklen_t, ShouldBlock = ShouldBlock::Yes) override;
virtual KResult listen(size_t) override;
virtual void get_local_address(sockaddr*, socklen_t*) override;
virtual void get_peer_address(sockaddr*, socklen_t*) override;
- virtual KResult attach(FileDescription&) override;
- virtual void detach(FileDescription&) override;
- virtual bool can_read(const FileDescription&, size_t) const override;
- virtual bool can_write(const FileDescription&, size_t) const override;
- virtual KResultOr<size_t> sendto(FileDescription&, const UserOrKernelBuffer&, size_t, int, Userspace<const sockaddr*>, socklen_t) override;
- virtual KResultOr<size_t> recvfrom(FileDescription&, UserOrKernelBuffer&, size_t, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) override;
- virtual KResult getsockopt(FileDescription&, int level, int option, Userspace<void*>, Userspace<socklen_t*>) override;
- virtual KResult ioctl(FileDescription&, unsigned request, Userspace<void*> arg) override;
- virtual KResult chown(FileDescription&, UserID, GroupID) override;
- virtual KResult chmod(FileDescription&, mode_t) override;
+ virtual KResult attach(OpenFileDescription&) override;
+ virtual void detach(OpenFileDescription&) override;
+ virtual bool can_read(const OpenFileDescription&, size_t) const override;
+ virtual bool can_write(const OpenFileDescription&, size_t) const override;
+ virtual KResultOr<size_t> sendto(OpenFileDescription&, const UserOrKernelBuffer&, size_t, int, Userspace<const sockaddr*>, socklen_t) override;
+ virtual KResultOr<size_t> recvfrom(OpenFileDescription&, UserOrKernelBuffer&, size_t, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) override;
+ virtual KResult getsockopt(OpenFileDescription&, int level, int option, Userspace<void*>, Userspace<socklen_t*>) override;
+ virtual KResult ioctl(OpenFileDescription&, unsigned request, Userspace<void*> arg) override;
+ virtual KResult chown(OpenFileDescription&, UserID, GroupID) override;
+ virtual KResult chmod(OpenFileDescription&, mode_t) override;
private:
explicit LocalSocket(int type, NonnullOwnPtr<DoubleBuffer> client_buffer, NonnullOwnPtr<DoubleBuffer> server_buffer);
virtual StringView class_name() const override { return "LocalSocket"; }
virtual bool is_local() const override { return true; }
- bool has_attached_peer(const FileDescription&) const;
- DoubleBuffer* receive_buffer_for(FileDescription&);
- DoubleBuffer* send_buffer_for(FileDescription&);
- NonnullRefPtrVector<FileDescription>& sendfd_queue_for(const FileDescription&);
- NonnullRefPtrVector<FileDescription>& recvfd_queue_for(const FileDescription&);
+ bool has_attached_peer(const OpenFileDescription&) const;
+ DoubleBuffer* receive_buffer_for(OpenFileDescription&);
+ DoubleBuffer* send_buffer_for(OpenFileDescription&);
+ NonnullRefPtrVector<OpenFileDescription>& sendfd_queue_for(const OpenFileDescription&);
+ NonnullRefPtrVector<OpenFileDescription>& recvfd_queue_for(const OpenFileDescription&);
void set_connect_side_role(Role connect_side_role, bool force_evaluate_block_conditions = false)
{
@@ -72,7 +72,7 @@ private:
KResult try_set_path(StringView);
// An open socket file on the filesystem.
- RefPtr<FileDescription> m_file;
+ RefPtr<OpenFileDescription> m_file;
UserID m_prebind_uid { 0 };
GroupID m_prebind_gid { 0 };
@@ -83,9 +83,9 @@ private:
// an additional role for the connect side and differentiate
// between them.
Role m_connect_side_role { Role::None };
- FileDescription* m_connect_side_fd { nullptr };
+ OpenFileDescription* m_connect_side_fd { nullptr };
- virtual Role role(const FileDescription& description) const override
+ virtual Role role(const OpenFileDescription& description) const override
{
if (m_connect_side_fd == &description)
return m_connect_side_role;
@@ -99,8 +99,8 @@ private:
NonnullOwnPtr<DoubleBuffer> m_for_client;
NonnullOwnPtr<DoubleBuffer> m_for_server;
- NonnullRefPtrVector<FileDescription> m_fds_for_client;
- NonnullRefPtrVector<FileDescription> m_fds_for_server;
+ NonnullRefPtrVector<OpenFileDescription> m_fds_for_client;
+ NonnullRefPtrVector<OpenFileDescription> m_fds_for_server;
IntrusiveListNode<LocalSocket> m_list_node;
diff --git a/Kernel/Net/Socket.cpp b/Kernel/Net/Socket.cpp
index 24f1f535af..89124d7ebb 100644
--- a/Kernel/Net/Socket.cpp
+++ b/Kernel/Net/Socket.cpp
@@ -6,7 +6,7 @@
#include <AK/StringView.h>
#include <Kernel/Debug.h>
-#include <Kernel/FileSystem/FileDescription.h>
+#include <Kernel/FileSystem/OpenFileDescription.h>
#include <Kernel/Net/IPv4Socket.h>
#include <Kernel/Net/LocalSocket.h>
#include <Kernel/Net/NetworkingManagement.h>
@@ -133,7 +133,7 @@ KResult Socket::setsockopt(int level, int option, Userspace<const void*> user_va
}
}
-KResult Socket::getsockopt(FileDescription&, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size)
+KResult Socket::getsockopt(OpenFileDescription&, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size)
{
socklen_t size;
TRY(copy_from_user(&size, value_size.unsafe_userspace_ptr()));
@@ -199,7 +199,7 @@ KResult Socket::getsockopt(FileDescription&, int level, int option, Userspace<vo
}
}
-KResultOr<size_t> Socket::read(FileDescription& description, u64, UserOrKernelBuffer& buffer, size_t size)
+KResultOr<size_t> Socket::read(OpenFileDescription& description, u64, UserOrKernelBuffer& buffer, size_t size)
{
if (is_shut_down_for_reading())
return 0;
@@ -207,7 +207,7 @@ KResultOr<size_t> Socket::read(FileDescription& description, u64, UserOrKernelBu
return recvfrom(description, buffer, size, 0, {}, 0, t);
}
-KResultOr<size_t> Socket::write(FileDescription& description, u64, const UserOrKernelBuffer& data, size_t size)
+KResultOr<size_t> Socket::write(OpenFileDescription& description, u64, const UserOrKernelBuffer& data, size_t size)
{
if (is_shut_down_for_writing())
return set_so_error(EPIPE);
diff --git a/Kernel/Net/Socket.h b/Kernel/Net/Socket.h
index a5008b10df..f93c14b466 100644
--- a/Kernel/Net/Socket.h
+++ b/Kernel/Net/Socket.h
@@ -23,7 +23,7 @@ enum class ShouldBlock {
Yes = 1
};
-class FileDescription;
+class OpenFileDescription;
class Socket : public File {
public:
@@ -68,7 +68,7 @@ public:
SetupState setup_state() const { return m_setup_state; }
void set_setup_state(SetupState setup_state);
- virtual Role role(const FileDescription&) const { return m_role; }
+ virtual Role role(const OpenFileDescription&) const { return m_role; }
bool is_connected() const { return m_connected; }
void set_connected(bool);
@@ -79,17 +79,17 @@ public:
KResult shutdown(int how);
virtual KResult bind(Userspace<const sockaddr*>, socklen_t) = 0;
- virtual KResult connect(FileDescription&, Userspace<const sockaddr*>, socklen_t, ShouldBlock) = 0;
+ virtual KResult connect(OpenFileDescription&, Userspace<const sockaddr*>, socklen_t, ShouldBlock) = 0;
virtual KResult listen(size_t) = 0;
virtual void get_local_address(sockaddr*, socklen_t*) = 0;
virtual void get_peer_address(sockaddr*, socklen_t*) = 0;
virtual bool is_local() const { return false; }
virtual bool is_ipv4() const { return false; }
- virtual KResultOr<size_t> sendto(FileDescription&, const UserOrKernelBuffer&, size_t, int flags, Userspace<const sockaddr*>, socklen_t) = 0;
- virtual KResultOr<size_t> recvfrom(FileDescription&, UserOrKernelBuffer&, size_t, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) = 0;
+ virtual KResultOr<size_t> sendto(OpenFileDescription&, const UserOrKernelBuffer&, size_t, int flags, Userspace<const sockaddr*>, socklen_t) = 0;
+ virtual KResultOr<size_t> recvfrom(OpenFileDescription&, UserOrKernelBuffer&, size_t, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) = 0;
virtual KResult setsockopt(int level, int option, Userspace<const void*>, socklen_t);
- virtual KResult getsockopt(FileDescription&, int level, int option, Userspace<void*>, Userspace<socklen_t*>);
+ virtual KResult getsockopt(OpenFileDescription&, int level, int option, Userspace<void*>, Userspace<socklen_t*>);
ProcessID origin_pid() const { return m_origin.pid; }
UserID origin_uid() const { return m_origin.uid; }
@@ -102,10 +102,10 @@ public:
Mutex& mutex() { return m_mutex; }
// ^File
- virtual KResultOr<size_t> read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override final;
- virtual KResultOr<size_t> write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override final;
+ virtual KResultOr<size_t> read(OpenFileDescription&, u64, UserOrKernelBuffer&, size_t) override final;
+ virtual KResultOr<size_t> write(OpenFileDescription&, u64, const UserOrKernelBuffer&, size_t) override final;
virtual KResult stat(::stat&) const override;
- virtual String absolute_path(const FileDescription&) const override = 0;
+ virtual String absolute_path(const OpenFileDescription&) const override = 0;
bool has_receive_timeout() const { return m_receive_timeout != Time::zero(); }
const Time& receive_timeout() const { return m_receive_timeout; }
diff --git a/Kernel/Net/TCPSocket.cpp b/Kernel/Net/TCPSocket.cpp
index 06b01cbda9..a3b8dd7ac0 100644
--- a/Kernel/Net/TCPSocket.cpp
+++ b/Kernel/Net/TCPSocket.cpp
@@ -8,7 +8,7 @@
#include <AK/Time.h>
#include <Kernel/Debug.h>
#include <Kernel/Devices/RandomDevice.h>
-#include <Kernel/FileSystem/FileDescription.h>
+#include <Kernel/FileSystem/OpenFileDescription.h>
#include <Kernel/Locking/MutexProtected.h>
#include <Kernel/Net/EthernetFrameHeader.h>
#include <Kernel/Net/IPv4.h>
@@ -394,7 +394,7 @@ KResult TCPSocket::protocol_listen(bool did_allocate_port)
return KSuccess;
}
-KResult TCPSocket::protocol_connect(FileDescription& description, ShouldBlock should_block)
+KResult TCPSocket::protocol_connect(OpenFileDescription& description, ShouldBlock should_block)
{
MutexLocker locker(mutex());
@@ -597,7 +597,7 @@ void TCPSocket::retransmit_packets()
});
}
-bool TCPSocket::can_write(const FileDescription& file_description, size_t size) const
+bool TCPSocket::can_write(const OpenFileDescription& file_description, size_t size) const
{
if (!IPv4Socket::can_write(file_description, size))
return false;
diff --git a/Kernel/Net/TCPSocket.h b/Kernel/Net/TCPSocket.h
index 7554107371..25b54ff5e4 100644
--- a/Kernel/Net/TCPSocket.h
+++ b/Kernel/Net/TCPSocket.h
@@ -157,7 +157,7 @@ public:
virtual KResult close() override;
- virtual bool can_write(const FileDescription&, size_t) const override;
+ virtual bool can_write(const OpenFileDescription&, size_t) const override;
static NetworkOrdered<u16> compute_tcp_checksum(IPv4Address const& source, IPv4Address const& destination, TCPPacket const&, u16 payload_size);
@@ -172,7 +172,7 @@ private:
virtual KResultOr<size_t> protocol_receive(ReadonlyBytes raw_ipv4_packet, UserOrKernelBuffer& buffer, size_t buffer_size, int flags) override;
virtual KResultOr<size_t> protocol_send(const UserOrKernelBuffer&, size_t) override;
- virtual KResult protocol_connect(FileDescription&, ShouldBlock) override;
+ virtual KResult protocol_connect(OpenFileDescription&, ShouldBlock) override;
virtual KResultOr<u16> protocol_allocate_local_port() override;
virtual bool protocol_is_disconnected() const override;
virtual KResult protocol_bind() override;
diff --git a/Kernel/Net/UDPSocket.cpp b/Kernel/Net/UDPSocket.cpp
index 477b7df6d8..8d2bd44db0 100644
--- a/Kernel/Net/UDPSocket.cpp
+++ b/Kernel/Net/UDPSocket.cpp
@@ -95,7 +95,7 @@ KResultOr<size_t> UDPSocket::protocol_send(const UserOrKernelBuffer& data, size_
return data_length;
}
-KResult UDPSocket::protocol_connect(FileDescription&, ShouldBlock)
+KResult UDPSocket::protocol_connect(OpenFileDescription&, ShouldBlock)
{
set_role(Role::Connected);
set_connected(true);
diff --git a/Kernel/Net/UDPSocket.h b/Kernel/Net/UDPSocket.h
index bf1c457d43..07a93c2777 100644
--- a/Kernel/Net/UDPSocket.h
+++ b/Kernel/Net/UDPSocket.h
@@ -27,7 +27,7 @@ private:
virtual KResultOr<size_t> protocol_receive(ReadonlyBytes raw_ipv4_packet, UserOrKernelBuffer& buffer, size_t buffer_size, int flags) override;
virtual KResultOr<size_t> protocol_send(const UserOrKernelBuffer&, size_t) override;
- virtual KResult protocol_connect(FileDescription&, ShouldBlock) override;
+ virtual KResult protocol_connect(OpenFileDescription&, ShouldBlock) override;
virtual KResultOr<u16> protocol_allocate_local_port() override;
virtual KResult protocol_bind() override;
};