summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/CMakeLists.txt1
-rw-r--r--src/core/hle/service/sockets/bsd_u.cpp13
-rw-r--r--src/core/hle/service/sockets/bsd_u.h1
-rw-r--r--src/core/hle/service/sockets/sfdnsres.cpp36
-rw-r--r--src/core/hle/service/sockets/sfdnsres.h3
5 files changed, 52 insertions, 2 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index d2fcc2c7e..70a38ff6c 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -145,6 +145,7 @@ add_library(core STATIC
145 hle/service/sm/sm.h 145 hle/service/sm/sm.h
146 hle/service/sockets/bsd_u.cpp 146 hle/service/sockets/bsd_u.cpp
147 hle/service/sockets/bsd_u.h 147 hle/service/sockets/bsd_u.h
148 hle/service/sockets/sfdnsres.cpp
148 hle/service/sockets/sfdnsres.h 149 hle/service/sockets/sfdnsres.h
149 hle/service/sockets/sockets.cpp 150 hle/service/sockets/sockets.cpp
150 hle/service/sockets/sockets.h 151 hle/service/sockets/sockets.h
diff --git a/src/core/hle/service/sockets/bsd_u.cpp b/src/core/hle/service/sockets/bsd_u.cpp
index 4fd960bd8..629ffb040 100644
--- a/src/core/hle/service/sockets/bsd_u.cpp
+++ b/src/core/hle/service/sockets/bsd_u.cpp
@@ -55,11 +55,22 @@ void BSD_U::SendTo(Kernel::HLERequestContext& ctx) {
55 rb.Push<u32>(0); // bsd errno 55 rb.Push<u32>(0); // bsd errno
56} 56}
57 57
58void BSD_U::Close(Kernel::HLERequestContext& ctx) {
59 LOG_WARNING(Service, "(STUBBED) called");
60
61 IPC::ResponseBuilder rb{ctx, 4};
62
63 rb.Push(RESULT_SUCCESS);
64 rb.Push<u32>(0); // ret
65 rb.Push<u32>(0); // bsd errno
66}
67
58BSD_U::BSD_U() : ServiceFramework("bsd:u") { 68BSD_U::BSD_U() : ServiceFramework("bsd:u") {
59 static const FunctionInfo functions[] = {{0, &BSD_U::RegisterClient, "RegisterClient"}, 69 static const FunctionInfo functions[] = {{0, &BSD_U::RegisterClient, "RegisterClient"},
60 {2, &BSD_U::Socket, "Socket"}, 70 {2, &BSD_U::Socket, "Socket"},
61 {11, &BSD_U::SendTo, "SendTo"}, 71 {11, &BSD_U::SendTo, "SendTo"},
62 {14, &BSD_U::Connect, "Connect"}}; 72 {14, &BSD_U::Connect, "Connect"},
73 {26, &BSD_U::Close, "Close"}};
63 RegisterHandlers(functions); 74 RegisterHandlers(functions);
64} 75}
65 76
diff --git a/src/core/hle/service/sockets/bsd_u.h b/src/core/hle/service/sockets/bsd_u.h
index 1fe96d850..fde08a22b 100644
--- a/src/core/hle/service/sockets/bsd_u.h
+++ b/src/core/hle/service/sockets/bsd_u.h
@@ -20,6 +20,7 @@ private:
20 void Socket(Kernel::HLERequestContext& ctx); 20 void Socket(Kernel::HLERequestContext& ctx);
21 void Connect(Kernel::HLERequestContext& ctx); 21 void Connect(Kernel::HLERequestContext& ctx);
22 void SendTo(Kernel::HLERequestContext& ctx); 22 void SendTo(Kernel::HLERequestContext& ctx);
23 void Close(Kernel::HLERequestContext& ctx);
23 24
24 /// Id to use for the next open file descriptor. 25 /// Id to use for the next open file descriptor.
25 u32 next_fd = 1; 26 u32 next_fd = 1;
diff --git a/src/core/hle/service/sockets/sfdnsres.cpp b/src/core/hle/service/sockets/sfdnsres.cpp
new file mode 100644
index 000000000..4d7bc7c3e
--- /dev/null
+++ b/src/core/hle/service/sockets/sfdnsres.cpp
@@ -0,0 +1,36 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include "core/hle/ipc_helpers.h"
6#include "core/hle/service/sockets/sfdnsres.h"
7
8namespace Service {
9namespace Sockets {
10
11void SFDNSRES::GetAddrInfo(Kernel::HLERequestContext& ctx) {
12 IPC::RequestParser rp{ctx};
13
14 LOG_WARNING(Service, "(STUBBED) called");
15
16 IPC::ResponseBuilder rb{ctx, 2};
17
18 rb.Push(RESULT_SUCCESS);
19}
20
21SFDNSRES::SFDNSRES() : ServiceFramework("sfdnsres") {
22 static const FunctionInfo functions[] = {{0, nullptr, "SetDnsAddressesPrivate"},
23 {1, nullptr, "GetDnsAddressPrivate"},
24 {2, nullptr, "GetHostByName"},
25 {3, nullptr, "GetHostByAddr"},
26 {4, nullptr, "GetHostStringError"},
27 {5, nullptr, "GetGaiStringError"},
28 {6, &SFDNSRES::GetAddrInfo, "GetAddrInfo"},
29 {7, nullptr, "GetNameInfo"},
30 {8, nullptr, "RequestCancelHandle"},
31 {9, nullptr, "CancelSocketCall"}};
32 RegisterHandlers(functions);
33}
34
35} // namespace Sockets
36} // namespace Service
diff --git a/src/core/hle/service/sockets/sfdnsres.h b/src/core/hle/service/sockets/sfdnsres.h
index 32a3ac8c5..b726a30fd 100644
--- a/src/core/hle/service/sockets/sfdnsres.h
+++ b/src/core/hle/service/sockets/sfdnsres.h
@@ -12,10 +12,11 @@ namespace Sockets {
12 12
13class SFDNSRES final : public ServiceFramework<SFDNSRES> { 13class SFDNSRES final : public ServiceFramework<SFDNSRES> {
14public: 14public:
15 SFDNSRES() : ServiceFramework("sfdnsres") {} 15 SFDNSRES();
16 ~SFDNSRES() = default; 16 ~SFDNSRES() = default;
17 17
18private: 18private:
19 void GetAddrInfo(Kernel::HLERequestContext& ctx);
19}; 20};
20 21
21} // namespace Sockets 22} // namespace Sockets