diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/sockets/bsd.cpp | 17 | ||||
| -rw-r--r-- | src/core/hle/service/sockets/bsd.h | 1 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp index 2b824059d..d85df6af1 100644 --- a/src/core/hle/service/sockets/bsd.cpp +++ b/src/core/hle/service/sockets/bsd.cpp | |||
| @@ -255,6 +255,21 @@ void BSD::GetSockName(Kernel::HLERequestContext& ctx) { | |||
| 255 | rb.Push<u32>(static_cast<u32>(write_buffer.size())); | 255 | rb.Push<u32>(static_cast<u32>(write_buffer.size())); |
| 256 | } | 256 | } |
| 257 | 257 | ||
| 258 | void BSD::GetSockOpt(Kernel::HLERequestContext& ctx) { | ||
| 259 | IPC::RequestParser rp{ctx}; | ||
| 260 | const s32 fd = rp.Pop<s32>(); | ||
| 261 | const u32 level = rp.Pop<u32>(); | ||
| 262 | const auto optname = static_cast<OptName>(rp.Pop<u32>()); | ||
| 263 | |||
| 264 | LOG_WARNING(Service, "(STUBBED) called. fd={} level={} optname=0x{:x}", fd, level, optname); | ||
| 265 | |||
| 266 | IPC::ResponseBuilder rb{ctx, 5}; | ||
| 267 | rb.Push(RESULT_SUCCESS); | ||
| 268 | rb.Push<s32>(-1); | ||
| 269 | rb.PushEnum(Errno::NOTCONN); | ||
| 270 | rb.Push<u32>(0); | ||
| 271 | } | ||
| 272 | |||
| 258 | void BSD::Listen(Kernel::HLERequestContext& ctx) { | 273 | void BSD::Listen(Kernel::HLERequestContext& ctx) { |
| 259 | IPC::RequestParser rp{ctx}; | 274 | IPC::RequestParser rp{ctx}; |
| 260 | const s32 fd = rp.Pop<s32>(); | 275 | const s32 fd = rp.Pop<s32>(); |
| @@ -812,7 +827,7 @@ BSD::BSD(Core::System& system_, const char* name) : ServiceFramework{system_, na | |||
| 812 | {14, &BSD::Connect, "Connect"}, | 827 | {14, &BSD::Connect, "Connect"}, |
| 813 | {15, &BSD::GetPeerName, "GetPeerName"}, | 828 | {15, &BSD::GetPeerName, "GetPeerName"}, |
| 814 | {16, &BSD::GetSockName, "GetSockName"}, | 829 | {16, &BSD::GetSockName, "GetSockName"}, |
| 815 | {17, nullptr, "GetSockOpt"}, | 830 | {17, &BSD::GetSockOpt, "GetSockOpt"}, |
| 816 | {18, &BSD::Listen, "Listen"}, | 831 | {18, &BSD::Listen, "Listen"}, |
| 817 | {19, nullptr, "Ioctl"}, | 832 | {19, nullptr, "Ioctl"}, |
| 818 | {20, &BSD::Fcntl, "Fcntl"}, | 833 | {20, &BSD::Fcntl, "Fcntl"}, |
diff --git a/src/core/hle/service/sockets/bsd.h b/src/core/hle/service/sockets/bsd.h index 6da0bfeb2..f5831dd48 100644 --- a/src/core/hle/service/sockets/bsd.h +++ b/src/core/hle/service/sockets/bsd.h | |||
| @@ -125,6 +125,7 @@ private: | |||
| 125 | void Connect(Kernel::HLERequestContext& ctx); | 125 | void Connect(Kernel::HLERequestContext& ctx); |
| 126 | void GetPeerName(Kernel::HLERequestContext& ctx); | 126 | void GetPeerName(Kernel::HLERequestContext& ctx); |
| 127 | void GetSockName(Kernel::HLERequestContext& ctx); | 127 | void GetSockName(Kernel::HLERequestContext& ctx); |
| 128 | void GetSockOpt(Kernel::HLERequestContext& ctx); | ||
| 128 | void Listen(Kernel::HLERequestContext& ctx); | 129 | void Listen(Kernel::HLERequestContext& ctx); |
| 129 | void Fcntl(Kernel::HLERequestContext& ctx); | 130 | void Fcntl(Kernel::HLERequestContext& ctx); |
| 130 | void SetSockOpt(Kernel::HLERequestContext& ctx); | 131 | void SetSockOpt(Kernel::HLERequestContext& ctx); |