mirror of
https://github.com/RGBCube/serenity
synced 2025-07-07 16:57:35 +00:00
Kernel: Stub out the SO_DEBUG SOL_SOCKET-level option
This commit is contained in:
parent
e521ffd156
commit
a0e2fedc20
3 changed files with 14 additions and 0 deletions
|
@ -101,6 +101,7 @@ enum {
|
||||||
SO_PEERCRED,
|
SO_PEERCRED,
|
||||||
SO_RCVBUF,
|
SO_RCVBUF,
|
||||||
SO_SNDBUF,
|
SO_SNDBUF,
|
||||||
|
SO_DEBUG,
|
||||||
SO_REUSEADDR,
|
SO_REUSEADDR,
|
||||||
SO_BINDTODEVICE,
|
SO_BINDTODEVICE,
|
||||||
SO_KEEPALIVE,
|
SO_KEEPALIVE,
|
||||||
|
@ -113,6 +114,7 @@ enum {
|
||||||
#define SO_TYPE SO_TYPE
|
#define SO_TYPE SO_TYPE
|
||||||
#define SO_ERROR SO_ERROR
|
#define SO_ERROR SO_ERROR
|
||||||
#define SO_PEERCRED SO_PEERCRED
|
#define SO_PEERCRED SO_PEERCRED
|
||||||
|
#define SO_DEBUG SO_DEBUG
|
||||||
#define SO_REUSEADDR SO_REUSEADDR
|
#define SO_REUSEADDR SO_REUSEADDR
|
||||||
#define SO_BINDTODEVICE SO_BINDTODEVICE
|
#define SO_BINDTODEVICE SO_BINDTODEVICE
|
||||||
#define SO_KEEPALIVE SO_KEEPALIVE
|
#define SO_KEEPALIVE SO_KEEPALIVE
|
||||||
|
|
|
@ -103,6 +103,9 @@ ErrorOr<void> Socket::setsockopt(int level, int option, Userspace<const void*> u
|
||||||
m_bound_interface = move(device);
|
m_bound_interface = move(device);
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
case SO_DEBUG:
|
||||||
|
// NOTE: This is supposed to toggle collection of debugging information on/off, we don't have any right now, so this is a no-op.
|
||||||
|
return {};
|
||||||
case SO_KEEPALIVE:
|
case SO_KEEPALIVE:
|
||||||
// FIXME: Obviously, this is not a real keepalive.
|
// FIXME: Obviously, this is not a real keepalive.
|
||||||
return {};
|
return {};
|
||||||
|
@ -198,6 +201,13 @@ ErrorOr<void> Socket::getsockopt(OpenFileDescription&, int level, int option, Us
|
||||||
TRY(copy_to_user(static_ptr_cast<int*>(value), &m_type));
|
TRY(copy_to_user(static_ptr_cast<int*>(value), &m_type));
|
||||||
size = sizeof(int);
|
size = sizeof(int);
|
||||||
return copy_to_user(value_size, &size);
|
return copy_to_user(value_size, &size);
|
||||||
|
case SO_DEBUG:
|
||||||
|
// NOTE: This is supposed to toggle collection of debugging information on/off, we don't have any right now, so we just claim it's always off.
|
||||||
|
if (size < sizeof(int))
|
||||||
|
return EINVAL;
|
||||||
|
TRY(memset_user(value.unsafe_userspace_ptr(), 0, sizeof(int)));
|
||||||
|
size = sizeof(int);
|
||||||
|
return copy_to_user(value_size, &size);
|
||||||
default:
|
default:
|
||||||
dbgln("setsockopt({}) at SOL_SOCKET not implemented.", option);
|
dbgln("setsockopt({}) at SOL_SOCKET not implemented.", option);
|
||||||
return ENOPROTOOPT;
|
return ENOPROTOOPT;
|
||||||
|
|
|
@ -231,3 +231,5 @@ set(WSSCREEN_DEBUG ON)
|
||||||
# set(BOCHS_DEBUG_PORT)
|
# set(BOCHS_DEBUG_PORT)
|
||||||
# False positive: IFF_DEBUG is an ioctl flag
|
# False positive: IFF_DEBUG is an ioctl flag
|
||||||
# set(IFF_DEBUG)
|
# set(IFF_DEBUG)
|
||||||
|
# False positive: SO_DEBUG is a socket option
|
||||||
|
# set(SO_DEBUG)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue