設定取り込み時にインターネット設定が空の場合エラーにするように

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@762 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2013-11-18 02:22:18 +00:00
parent e1e5748ccf
commit 05cf83f264
3 changed files with 69 additions and 38 deletions

View File

@ -114,9 +114,12 @@ nn::Result AcChanger::GetAcData()
nn::Result result; nn::Result result;
// インターネット接続設定取得 // インターネット接続設定取得
result = nn::ac::CTR::InitializeInternal(); NN_UTIL_RETURN_IF_FAILED(
if (result.IsSuccess()) nn::ac::CTR::InitializeInternal()
{ );
ClearNetworkSettingCheck();
for (s32 i = 0; i < 3; i++) for (s32 i = 0; i < 3; i++)
{ {
result = nn::ac::CTR::LoadNetworkSetting(i, s_SaveData.m_NetworkSetting[i]); result = nn::ac::CTR::LoadNetworkSetting(i, s_SaveData.m_NetworkSetting[i]);
@ -124,14 +127,20 @@ nn::Result AcChanger::GetAcData()
{ {
std::memset(&s_SaveData.m_NetworkSetting[i], 0, sizeof(s_SaveData.m_NetworkSetting[i])); std::memset(&s_SaveData.m_NetworkSetting[i], 0, sizeof(s_SaveData.m_NetworkSetting[i]));
} }
else
{
m_IsNetworkSettingValid[i] = true;
}
} }
NN_UTIL_RETURN_IF_FAILED( NN_UTIL_RETURN_IF_FAILED(
nn::ac::CTR::FinalizeInternal() nn::ac::CTR::FinalizeInternal()
); );
}
else // 設定が1つも書かれていない
if(IsNetworkSettingAllInvalid())
{ {
std::memset(s_SaveData.m_NetworkSetting, 0, sizeof(s_SaveData.m_NetworkSetting)); return nn::MakePermanentResult(nn::Result::SUMMARY_NOT_FOUND, nn::Result::MODULE_APPLICATION,
nn::Result::DESCRIPTION_NOT_FOUND);
} }
return nn::ResultSuccess(); return nn::ResultSuccess();
@ -177,16 +186,15 @@ nn::Result AcChanger::RestoreAcDataFromBackup()
); );
// インターネット接続設定 // インターネット接続設定
nn::Result result = nn::ac::CTR::InitializeInternal(); NN_UTIL_RETURN_IF_FAILED(
if (result.IsSuccess()) nn::ac::CTR::InitializeInternal()
{ );
for (s32 i = 0; i < 3; i++) for (s32 i = 0; i < 3; i++)
{ {
result = nn::ac::CTR::UpdateNetworkSetting(i, s_SaveData.m_NetworkSetting[i]); NN_UTIL_RETURN_IF_FAILED(
if(result.IsFailure()) nn::ac::CTR::UpdateNetworkSetting(i, s_SaveData.m_NetworkSetting[i])
{ );
std::memset(&s_SaveData.m_NetworkSetting[i], 0 , sizeof(s_SaveData.m_NetworkSetting[i]));
}
} }
NN_UTIL_RETURN_IF_FAILED( NN_UTIL_RETURN_IF_FAILED(
nn::ac::CTR::FlushNetworkSetting() nn::ac::CTR::FlushNetworkSetting()
@ -195,11 +203,27 @@ nn::Result AcChanger::RestoreAcDataFromBackup()
NN_UTIL_RETURN_IF_FAILED( NN_UTIL_RETURN_IF_FAILED(
nn::ac::CTR::FinalizeInternal() nn::ac::CTR::FinalizeInternal()
); );
}
else
{
std::memset(s_SaveData.m_NetworkSetting, 0, sizeof(s_SaveData.m_NetworkSetting));
}
return nn::ResultSuccess(); return nn::ResultSuccess();
} }
void AcChanger::ClearNetworkSettingCheck()
{
for(s32 i = 0; i < 3; i++)
{
m_IsNetworkSettingValid[i] = false;
}
}
bool AcChanger::IsNetworkSettingAllInvalid()
{
if(!m_IsNetworkSettingValid[0] && !m_IsNetworkSettingValid[1] && !m_IsNetworkSettingValid[2])
{
return true;
}
else
{
return false;
}
}

View File

@ -44,9 +44,16 @@ private:
// acのデータをバックアップメモリから書き込みます // acのデータをバックアップメモリから書き込みます
nn::Result RestoreAcDataFromBackup(); nn::Result RestoreAcDataFromBackup();
// ネットワーク設定の確認フラグのクリア
void ClearNetworkSettingCheck();
// ネットワーク設定がされていないかどうか
bool IsNetworkSettingAllInvalid();
static const size_t FILE_NUM = 1; static const size_t FILE_NUM = 1;
static const size_t DIR_NUM = 1; static const size_t DIR_NUM = 1;
static const bool DUPLICATE = true; static const bool DUPLICATE = true;
bool m_IsNetworkSettingValid[3];
}; };
#endif /* ACCHANGER_H_ */ #endif /* ACCHANGER_H_ */

View File

@ -1,4 +1,4 @@
【ビルド環境】 【ビルド環境】
・SDK ・SDK
CTR_SDK-3_3 branch r54527 CTR_SDK-3_3 branch r54527