[SSL]: Add CreateContextForSystem
This commit is contained in:
parent
eea7d44990
commit
f86b55a694
2 changed files with 22 additions and 3 deletions
|
|
@ -729,7 +729,7 @@ Errno BSD::GetSockOptImpl(s32 fd, u32 level, OptName optname, std::vector<u8>& o
|
||||||
|
|
||||||
if (level != static_cast<u32>(SocketLevel::SOCKET)) {
|
if (level != static_cast<u32>(SocketLevel::SOCKET)) {
|
||||||
LOG_WARNING(Service, "(STUBBED) Unknown getsockopt level={}, returning INVAL", level);
|
LOG_WARNING(Service, "(STUBBED) Unknown getsockopt level={}, returning INVAL", level);
|
||||||
return Errno::INVAL;
|
return Errno::SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Network::SocketBase* const socket = file_descriptors[fd]->socket.get();
|
Network::SocketBase* const socket = file_descriptors[fd]->socket.get();
|
||||||
|
|
@ -760,7 +760,7 @@ Errno BSD::SetSockOptImpl(s32 fd, u32 level, OptName optname, std::span<const u8
|
||||||
|
|
||||||
if (level != static_cast<u32>(SocketLevel::SOCKET)) {
|
if (level != static_cast<u32>(SocketLevel::SOCKET)) {
|
||||||
LOG_WARNING(Service, "(STUBBED) Unknown setsockopt level={}, returning INVAL", level);
|
LOG_WARNING(Service, "(STUBBED) Unknown setsockopt level={}, returning INVAL", level);
|
||||||
return Errno::INVAL;
|
return Errno::SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
Network::SocketBase* const socket = file_descriptors[fd]->socket.get();
|
Network::SocketBase* const socket = file_descriptors[fd]->socket.get();
|
||||||
|
|
|
||||||
|
|
@ -529,7 +529,7 @@ public:
|
||||||
{7, nullptr, "SetDebugOption"},
|
{7, nullptr, "SetDebugOption"},
|
||||||
{8, nullptr, "GetDebugOption"},
|
{8, nullptr, "GetDebugOption"},
|
||||||
{9, nullptr, "ClearTls12FallbackFlag"},
|
{9, nullptr, "ClearTls12FallbackFlag"},
|
||||||
{100, nullptr, "CreateContextForSystem"},
|
{100, &ISslService::CreateContextForSystem, "CreateContextForSystem"},
|
||||||
{101, nullptr, "SetThreadCoreMask"},
|
{101, nullptr, "SetThreadCoreMask"},
|
||||||
{102, nullptr, "GetThreadCoreMask"},
|
{102, nullptr, "GetThreadCoreMask"},
|
||||||
{103, nullptr, "VerifySignature"}, // 18.0.0+
|
{103, nullptr, "VerifySignature"}, // 18.0.0+
|
||||||
|
|
@ -559,6 +559,25 @@ private:
|
||||||
rb.PushIpcInterface<ISslContext>(system, parameters.ssl_version);
|
rb.PushIpcInterface<ISslContext>(system, parameters.ssl_version);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CreateContextForSystem(HLERequestContext& ctx) {
|
||||||
|
struct Parameters {
|
||||||
|
SslVersion ssl_version;
|
||||||
|
INSERT_PADDING_BYTES(0x4);
|
||||||
|
u64 pid_placeholder;
|
||||||
|
};
|
||||||
|
static_assert(sizeof(Parameters) == 0x10, "Parameters is an invalid size");
|
||||||
|
|
||||||
|
IPC::RequestParser rp{ctx};
|
||||||
|
const auto parameters = rp.PopRaw<Parameters>();
|
||||||
|
|
||||||
|
LOG_WARNING(Service_SSL, "(STUBBED) called, api_version={}, pid_placeholder={}",
|
||||||
|
parameters.ssl_version.api_version, parameters.pid_placeholder);
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
||||||
|
rb.Push(ResultSuccess);
|
||||||
|
rb.PushIpcInterface<ISslContext>(system, parameters.ssl_version);
|
||||||
|
}
|
||||||
|
|
||||||
void SetInterfaceVersion(HLERequestContext& ctx) {
|
void SetInterfaceVersion(HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
u32 ssl_version = rp.Pop<u32>();
|
u32 ssl_version = rp.Pop<u32>();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue