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

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,24 +114,33 @@ nn::Result AcChanger::GetAcData()
nn::Result result;
// インターネット接続設定取得
result = nn::ac::CTR::InitializeInternal();
if (result.IsSuccess())
NN_UTIL_RETURN_IF_FAILED(
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]);
if (result.IsFailure())
{
result = nn::ac::CTR::LoadNetworkSetting(i, s_SaveData.m_NetworkSetting[i]);
if(result.IsFailure())
{
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::ac::CTR::FinalizeInternal()
);
}
else
NN_UTIL_RETURN_IF_FAILED(
nn::ac::CTR::FinalizeInternal()
);
// 設定が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();
@ -147,17 +156,17 @@ nn::Result AcChanger::ImportAcDatatoBackup()
NN_UTIL_RETURN_IF_FAILED(
file.TryInitialize(L"data:/savedata.bin", true)
);
s32 writeSize;
NN_UTIL_RETURN_IF_FAILED(
file.TryWrite(&writeSize, &s_SaveData, sizeof(s_SaveData), true)
);
);
NN_UTIL_RETURN_IF_FAILED(
nn::fs::CommitSaveData("data:")
);
NN_UTIL_RETURN_IF_FAILED(
NN_UTIL_RETURN_IF_FAILED(
nn::fs::Unmount("data:")
);
@ -167,7 +176,7 @@ nn::Result AcChanger::ImportAcDatatoBackup()
nn::Result AcChanger::RestoreAcDataFromBackup()
{
nn::fs::FileInputStream file;
NN_UTIL_RETURN_IF_FAILED(
NN_UTIL_RETURN_IF_FAILED(
file.TryInitialize(L"data:/savedata.bin")
);
@ -177,29 +186,44 @@ nn::Result AcChanger::RestoreAcDataFromBackup()
);
// インターネット接続設定
nn::Result result = nn::ac::CTR::InitializeInternal();
if (result.IsSuccess())
NN_UTIL_RETURN_IF_FAILED(
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]);
if(result.IsFailure())
{
std::memset(&s_SaveData.m_NetworkSetting[i], 0 , sizeof(s_SaveData.m_NetworkSetting[i]));
}
}
NN_UTIL_RETURN_IF_FAILED(
nn::ac::CTR::FlushNetworkSetting()
);
NN_UTIL_RETURN_IF_FAILED(
nn::ac::CTR::FinalizeInternal()
nn::ac::CTR::UpdateNetworkSetting(i, s_SaveData.m_NetworkSetting[i])
);
}
else
{
std::memset(s_SaveData.m_NetworkSetting, 0, sizeof(s_SaveData.m_NetworkSetting));
}
NN_UTIL_RETURN_IF_FAILED(
nn::ac::CTR::FlushNetworkSetting()
);
NN_UTIL_RETURN_IF_FAILED(
nn::ac::CTR::FinalizeInternal()
);
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のデータをバックアップメモリから書き込みます
nn::Result RestoreAcDataFromBackup();
// ネットワーク設定の確認フラグのクリア
void ClearNetworkSettingCheck();
// ネットワーク設定がされていないかどうか
bool IsNetworkSettingAllInvalid();
static const size_t FILE_NUM = 1;
static const size_t DIR_NUM = 1;
static const bool DUPLICATE = true;
bool m_IsNetworkSettingValid[3];
};
#endif /* ACCHANGER_H_ */

View File

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