From 205c2107f05bb3acffc7110d14b895a27910d83d Mon Sep 17 00:00:00 2001 From: Pirater12 Date: Thu, 26 Jul 2018 20:17:21 +0530 Subject: [PATCH] Fix the order in which the Service Handles are requested --- libctru/include/3ds/services/frd.h | 2 ++ libctru/source/services/frd.c | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/libctru/include/3ds/services/frd.h b/libctru/include/3ds/services/frd.h index e7f31e2..4868863 100644 --- a/libctru/include/3ds/services/frd.h +++ b/libctru/include/3ds/services/frd.h @@ -93,6 +93,8 @@ Result frdInit(void); /// Exists FRD. void frdExit(void); +/// Get FRD handle. +Handle *frdSessionGetHandle(void); /** * @brief Gets the login status of the current user. * @param state Pointer to write the current user's login status to. diff --git a/libctru/source/services/frd.c b/libctru/source/services/frd.c index 116ba5f..aa52e58 100644 --- a/libctru/source/services/frd.c +++ b/libctru/source/services/frd.c @@ -46,9 +46,9 @@ Result frdInit(void) if (AtomicPostIncrement(&frdRefCount)) return 0; - ret = srvGetServiceHandle(&frdHandle, "frd:u"); + ret = srvGetServiceHandle(&frdHandle, "frd:a"); if (R_FAILED(ret)) ret = srvGetServiceHandle(&frdHandle, "frd:n"); - if (R_FAILED(ret)) ret = srvGetServiceHandle(&frdHandle, "frd:a"); + if (R_FAILED(ret)) ret = srvGetServiceHandle(&frdHandle, "frd:u"); if (R_FAILED(ret)) AtomicDecrement(&frdRefCount); return ret; @@ -60,6 +60,11 @@ void frdExit(void) svcCloseHandle(frdHandle); } +Handle *frdGetSessionHandle(void) +{ + return &frdHandle; +} + Result FRDU_HasLoggedIn(bool *state) { Result ret = 0;