diff --git a/Kernel/Net/IPv4Socket.cpp b/Kernel/Net/IPv4Socket.cpp index 51e61eacd0..bbb3601ebb 100644 --- a/Kernel/Net/IPv4Socket.cpp +++ b/Kernel/Net/IPv4Socket.cpp @@ -141,7 +141,7 @@ KResult IPv4Socket::listen(size_t backlog) return result.error_or_port.error(); set_backlog(backlog); - m_role = Role::Listener; + set_role(Role::Listener); evaluate_block_conditions(); dbgln_if(IPV4_SOCKET_DEBUG, "IPv4Socket({}) listening with backlog={}", this, backlog); diff --git a/Kernel/Net/LocalSocket.cpp b/Kernel/Net/LocalSocket.cpp index 1fc53d4499..620bb0027d 100644 --- a/Kernel/Net/LocalSocket.cpp +++ b/Kernel/Net/LocalSocket.cpp @@ -66,7 +66,7 @@ KResultOr LocalSocket::try_create_connected_pair(int type) socket->set_acceptor(Process::current()); socket->set_connected(true); socket->set_connect_side_role(Role::Connected); - socket->m_role = Role::Accepted; + socket->set_role(Role::Accepted); auto description2_result = FileDescription::try_create(*socket); if (description2_result.is_error()) @@ -243,7 +243,7 @@ KResult LocalSocket::listen(size_t backlog) return set_so_error(EOPNOTSUPP); set_backlog(backlog); auto previous_role = m_role; - m_role = Role::Listener; + set_role(Role::Listener); set_connect_side_role(Role::Listener, previous_role != m_role); dbgln_if(LOCAL_SOCKET_DEBUG, "LocalSocket({}) listening with backlog={}", this, backlog); diff --git a/Kernel/Net/Socket.cpp b/Kernel/Net/Socket.cpp index 7dfa24ad34..1d6260951d 100644 --- a/Kernel/Net/Socket.cpp +++ b/Kernel/Net/Socket.cpp @@ -63,7 +63,7 @@ RefPtr Socket::accept() auto& process = Process::current(); client->set_acceptor(process); client->m_connected = true; - client->m_role = Role::Accepted; + client->set_role(Role::Accepted); if (!m_pending.is_empty()) evaluate_block_conditions(); return client; diff --git a/Kernel/Net/Socket.h b/Kernel/Net/Socket.h index 88c89500b7..77e2d92352 100644 --- a/Kernel/Net/Socket.h +++ b/Kernel/Net/Socket.h @@ -140,6 +140,8 @@ protected: void set_origin(Process const&); void set_acceptor(Process const&); + void set_role(Role role) { m_role = role; } + protected: ucred m_origin { 0, 0, 0 }; ucred m_acceptor { 0, 0, 0 }; diff --git a/Kernel/Net/TCPSocket.cpp b/Kernel/Net/TCPSocket.cpp index ac21e380fe..be995302e0 100644 --- a/Kernel/Net/TCPSocket.cpp +++ b/Kernel/Net/TCPSocket.cpp @@ -39,7 +39,7 @@ void TCPSocket::set_state(State new_state) m_state = new_state; if (new_state == State::Established && m_direction == Direction::Outgoing) { - m_role = Role::Connected; + set_role(Role::Connected); [[maybe_unused]] auto rc = set_so_error(KSuccess); } @@ -416,7 +416,7 @@ KResult TCPSocket::protocol_connect(FileDescription& description, ShouldBlock sh if (auto result = send_tcp_packet(TCPFlags::SYN); result.is_error()) return result; m_state = State::SynSent; - m_role = Role::Connecting; + set_role(Role::Connecting); m_direction = Direction::Outgoing; evaluate_block_conditions(); @@ -429,7 +429,7 @@ KResult TCPSocket::protocol_connect(FileDescription& description, ShouldBlock sh locker.lock(); VERIFY(setup_state() == SetupState::Completed); if (has_error()) { // TODO: check unblock_flags - m_role = Role::None; + set_role(Role::None); if (error() == TCPSocket::Error::RetransmitTimeout) return set_so_error(ETIMEDOUT); else diff --git a/Kernel/Net/UDPSocket.cpp b/Kernel/Net/UDPSocket.cpp index 8702517afb..372d0f6bfe 100644 --- a/Kernel/Net/UDPSocket.cpp +++ b/Kernel/Net/UDPSocket.cpp @@ -100,7 +100,7 @@ KResultOr UDPSocket::protocol_send(const UserOrKernelBuffer& data, size_ KResult UDPSocket::protocol_connect(FileDescription&, ShouldBlock) { - m_role = Role::Connected; + set_role(Role::Connected); set_connected(true); return KSuccess; }