diff --git a/sysdeps/managarm/generic/socket.cpp b/sysdeps/managarm/generic/socket.cpp index f4825e5f83..c04eec9fb5 100644 --- a/sysdeps/managarm/generic/socket.cpp +++ b/sysdeps/managarm/generic/socket.cpp @@ -335,9 +335,10 @@ std::array, 5> setsockopt_readonly = {{ { SOL_SOCKET, SO_TYPE }, }}; -std::array, 3> setsockopt_passthrough = {{ +std::array, 4> setsockopt_passthrough = {{ { SOL_PACKET, PACKET_AUXDATA }, { SOL_SOCKET, SO_LOCK_FILTER }, + { SOL_SOCKET, SO_BINDTODEVICE }, { SOL_IP, IP_PKTINFO }, }}; @@ -407,6 +408,8 @@ int sys_setsockopt(int fd, int layer, int number, return 0; else if(resp.error() == managarm::fs::Errors::ILLEGAL_OPERATION_TARGET) return EINVAL; + else if(resp.error() == managarm::fs::Errors::ILLEGAL_ARGUMENT) + return EINVAL; else if(resp.error() == managarm::fs::Errors::INVALID_PROTOCOL_OPTION) return ENOPROTOOPT; else