summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/sockets/bsd.cpp17
-rw-r--r--src/core/hle/service/sockets/bsd.h1
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
258void 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
258void BSD::Listen(Kernel::HLERequestContext& ctx) { 273void 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);