|
|
@@ -65,7 +65,7 @@ private:
|
|
|
LOG_WARNING(Service_NIFM, "(STUBBED) called");
|
|
|
IPC::ResponseBuilder rb{ctx, 3};
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
- rb.Push<u32>(0);
|
|
|
+ rb.Push<u32>(3);
|
|
|
}
|
|
|
|
|
|
void GetResult(Kernel::HLERequestContext& ctx) {
|
|
|
@@ -114,10 +114,11 @@ public:
|
|
|
|
|
|
private:
|
|
|
void GetClientId(Kernel::HLERequestContext& ctx) {
|
|
|
+ static constexpr u32 client_id = 1;
|
|
|
LOG_WARNING(Service_NIFM, "(STUBBED) called");
|
|
|
IPC::ResponseBuilder rb{ctx, 4};
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
- rb.Push<u64>(0);
|
|
|
+ rb.Push<u64>(client_id); // Client ID needs to be non zero otherwise it's considered invalid
|
|
|
}
|
|
|
void CreateScanRequest(Kernel::HLERequestContext& ctx) {
|
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
|
|
@@ -141,10 +142,16 @@ private:
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
}
|
|
|
void CreateTemporaryNetworkProfile(Kernel::HLERequestContext& ctx) {
|
|
|
- IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
|
|
+ ASSERT_MSG(ctx.GetReadBufferSize() == 0x17c, "NetworkProfileData is not the correct size");
|
|
|
+ u128 uuid{};
|
|
|
+ auto buffer = ctx.ReadBuffer();
|
|
|
+ std::memcpy(&uuid, buffer.data() + 8, sizeof(u128));
|
|
|
+
|
|
|
+ IPC::ResponseBuilder rb{ctx, 6, 0, 1};
|
|
|
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
rb.PushIpcInterface<INetworkProfile>();
|
|
|
+ rb.PushRaw<u128>(uuid);
|
|
|
|
|
|
LOG_DEBUG(Service_NIFM, "called");
|
|
|
}
|