サルベージ失敗時にもサルベージ後に呼ぶべきAPIを呼び出していたのを修正

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@793 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2014-04-30 00:56:54 +00:00
parent 547ed73c72
commit dd108a5a7d

View File

@ -122,6 +122,9 @@ nn::Result ActCompleter::ExecImpl()
// アンマウントできたのでアカウントサルベージを実行
nn::Result result = nn::act::SalvageAccounts();
// サルベージ終了をシステムに通知
s_EndEvent.Signal();
if(result.IsFailure())
{
if(nn::act::ResultRequestNotFound().Includes(result) && s_SalvageCheck == ACT_SALVAGE_WITHOUT_CHECK)
@ -130,7 +133,6 @@ nn::Result ActCompleter::ExecImpl()
}
else
{
s_EndEvent.Signal();
NN_UTIL_RETURN_IF_FAILED_1(
nn::act::FinalizeAdmin(),
common::FinalizeNetwork());
@ -141,52 +143,52 @@ nn::Result ActCompleter::ExecImpl()
return result;
}
}
// サルベージ終了をシステムに通知
s_EndEvent.Signal();
// COPPA判定とPIN判定の準備
nn::cfg::CfgRegionCode region = nn::cfg::GetRegion();
u8 age = nn::act::GetAgeAtSalvage();
nn::cfg::CfgCountryCode country;
NN_UTIL_RETURN_IF_FAILED_2(
nn::act::GetCountryCodeAtSalvage(reinterpret_cast<u32*>(&country)),
nn::act::FinalizeAdmin(),
common::FinalizeNetwork());
AgeChecker ageChecker;
if(region == nn::cfg::CFG_REGION_AMERICA)
else
{
// COPPA判定とPIN判定の準備
nn::cfg::CfgRegionCode region = nn::cfg::GetRegion();
u8 age = nn::act::GetAgeAtSalvage();
nn::cfg::CfgCountryCode country;
if(ageChecker.IsCoppaRequired(age, region, country))
NN_UTIL_RETURN_IF_FAILED_2(
nn::act::GetCountryCodeAtSalvage(reinterpret_cast<u32*>(&country)),
nn::act::FinalizeAdmin(),
common::FinalizeNetwork());
AgeChecker ageChecker;
if (region == nn::cfg::CFG_REGION_AMERICA)
{
if (ageChecker.IsCoppaRequired(age, region, country))
{
// COPPA対象の年齢なら復元する
s_ApprovalId = nn::act::GetSalvagedApprovalId();
NN_UTIL_RETURN_IF_FAILED_2(
SaveApprovalId(),
nn::act::FinalizeAdmin(),
common::FinalizeNetwork());
}
}
// PIN必須ならフラグを立てる
if (ageChecker.IsPinRestrictionRequired(age, region, country))
{
// COPPA対象の年齢なら復元する
s_ApprovalId = nn::act::GetSalvagedApprovalId();
NN_UTIL_RETURN_IF_FAILED_2(
SaveApprovalId(),
nn::cfg::CTR::system::SetForceParentalControlFlag(true),
nn::act::FinalizeAdmin(),
common::FinalizeNetwork());
NN_UTIL_RETURN_IF_FAILED_2(
nn::cfg::CTR::system::FlushConfig(),
nn::act::FinalizeAdmin(),
common::FinalizeNetwork());
}
}
// PIN必須ならフラグを立てる
if(ageChecker.IsPinRestrictionRequired(age, region, country))
{
NN_UTIL_RETURN_IF_FAILED_2(
nn::cfg::CTR::system::SetForceParentalControlFlag(true),
nn::act::FinalizeAdmin(),
common::FinalizeNetwork());
NN_UTIL_RETURN_IF_FAILED_2(
nn::cfg::CTR::system::FlushConfig(),
nn::act::FinalizeAdmin(),
common::FinalizeNetwork());
}
}
// 移行完了
// サルベージの有無に関わらず呼び出す
NN_UTIL_RETURN_IF_FAILED_2(
nn::act::CompleteTransfer(),
nn::act::FinalizeAdmin(),