From dd108a5a7da397fd3aac5c65de61386c7d7cbad1 Mon Sep 17 00:00:00 2001 From: N2614 Date: Wed, 30 Apr 2014 00:56:54 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=B5=E3=83=AB=E3=83=99=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E5=A4=B1=E6=95=97=E6=99=82=E3=81=AB=E3=82=82=E3=82=B5=E3=83=AB?= =?UTF-8?q?=E3=83=99=E3=83=BC=E3=82=B8=E5=BE=8C=E3=81=AB=E5=91=BC=E3=81=B6?= =?UTF-8?q?=E3=81=B9=E3=81=8DAPI=E3=82=92=E5=91=BC=E3=81=B3=E5=87=BA?= =?UTF-8?q?=E3=81=97=E3=81=A6=E3=81=84=E3=81=9F=E3=81=AE=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../sources/ConsoleRestore/ActCompleter.cpp | 74 ++++++++++--------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/ActCompleter.cpp b/trunk/ConsoleDataMigration/sources/ConsoleRestore/ActCompleter.cpp index 3a96ed5..2ab8b9c 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/ActCompleter.cpp +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/ActCompleter.cpp @@ -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(&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(&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(),