From d16131b100aaf74e2d69207aea2c8a586bec6f1e Mon Sep 17 00:00:00 2001 From: Rodrigo Tobar Date: Thu, 30 Sep 2021 10:38:24 +0800 Subject: [PATCH] Kernel: Implement getsockopt(SO_TYPE) This is easy to implement, and is required by some applications like python's ssl module. --- Kernel/Net/Socket.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Kernel/Net/Socket.cpp b/Kernel/Net/Socket.cpp index 85c358f3a2..f8a7de1275 100644 --- a/Kernel/Net/Socket.cpp +++ b/Kernel/Net/Socket.cpp @@ -187,6 +187,12 @@ KResult Socket::getsockopt(OpenFileDescription&, int level, int option, Userspac TRY(copy_to_user(static_ptr_cast(value), &m_timestamp)); size = sizeof(int); return copy_to_user(value_size, &size); + case SO_TYPE: + if (size < sizeof(int)) + return EINVAL; + TRY(copy_to_user(static_ptr_cast(value), &m_type)); + size = sizeof(int); + return copy_to_user(value_size, &size); default: dbgln("setsockopt({}) at SOL_SOCKET not implemented.", option); return ENOPROTOOPT;