APSetting.txt反映前に現在のインターネット設定を保持しておくように

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@4 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2011-01-31 04:06:00 +00:00
parent eeafd1919a
commit b8ffcb4006
3 changed files with 40 additions and 24 deletions

View File

@ -86,6 +86,8 @@ bit8 s_IvsDecryptIv[AES_BLOCK_SIZE] =
}
CheckedNetworkSetting s_CurrentNetowrkSetting1;
void ConvertTimeZoneString(const char* str)
{
s_TimeZone.hour = 0;
@ -624,6 +626,17 @@ bool UpdateNetworkSetting(nn::ac::NetworkSetting& networkSetting)
networkSetting.proxy.enable = false;
networkSetting.other.enableUPnP = false;
// 現在のインターネット設定1を一時的に保持
result = nn::ac::LoadNetworkSetting(0, s_CurrentNetowrkSetting1.setting);
if(result.IsSuccess())
{
s_CurrentNetowrkSetting1.isValid = true;
}
else
{
s_CurrentNetowrkSetting1.isValid = false;
}
result = nn::ac::UpdateNetworkSetting( 0, networkSetting );
if(!result.IsSuccess())
{
@ -988,6 +1001,11 @@ TimeZone GetTimeZone()
return s_TimeZone;
}
CheckedNetworkSetting* GetTempNetworkSetting()
{
return &s_CurrentNetowrkSetting1;
}
void ImportData()
{
static bool init = true;

View File

@ -18,6 +18,7 @@
#include <nn.h>
#include "FileName.h"
#include <nn/ac/CTR/private/ac_NetworkSetting.h>
namespace ConsoleRestore
{
@ -77,6 +78,15 @@ bool ReadSetting();
char* GetNtpServerName();
TimeZone GetTimeZone();
struct CheckedNetworkSetting
{
nn::ac::CTR::NetworkSetting setting;
bool isValid;
NN_PADDING3;
};
CheckedNetworkSetting* GetTempNetworkSetting();
}
#endif /* IMPORTER_H_ */

View File

@ -48,9 +48,6 @@ struct NTP_Packet{ // NTPパケット
u32 transmitTimestampFractions;
};
const size_t NETWORK_SETTING_SLOT_NUM = 3;
nn::ac::CTR::NetworkSetting s_CurrentNetoworkSetting[NETWORK_SETTING_SLOT_NUM];
const size_t TIMEOUT_MILLISECOND = 5000; // タイムアウト ミリ秒数
NTP_Packet s_NTPSendPacket; // 送信するNTPパケット
NTP_Packet s_NTPRecvPacket; // 受信するNTPパケット
@ -287,29 +284,21 @@ u32 GetNtpTime()
return ntp_time;
}
void SaveCurrentInternetSetting()
{
NN_LOG("Save Current Internet Setting\n");
nn::Result result;
result = nn::ac::CTR::InitializeInternal();
COMMON_LOGGER_RESULT_IF_FAILED(result);
for(u8 i = 0; i < NETWORK_SETTING_SLOT_NUM; i++)
{
result = nn::ac::CTR::LoadNetworkSetting(i, s_CurrentNetoworkSetting[i]);
COMMON_LOGGER_RESULT_IF_FAILED(result);
}
}
void RestoreCurrentInternetSetting()
{
NN_LOG("Restore Current Internet Setting\n");
COMMON_LOGGER("Restore Current Internet Setting\n");
nn::Result result;
for(u8 i = 0; i < NETWORK_SETTING_SLOT_NUM; i++)
if (GetTempNetworkSetting()->isValid)
{
result = nn::ac::CTR::UpdateNetworkSetting(i, s_CurrentNetoworkSetting[i]);
result = nn::ac::CTR::UpdateNetworkSetting(0, GetTempNetworkSetting()->setting);
COMMON_LOGGER_RESULT_IF_FAILED(result);
}
result = nn::ac::FlushNetworkSetting();
COMMON_LOGGER_RESULT_IF_FAILED(result);
result = nn::ac::FinalizeInternal();
COMMON_LOGGER_RESULT_IF_FAILED(result);
}
void NtpThreadFunc()
@ -352,11 +341,10 @@ bool IsTimeAdjustFinished()
void AdjustTime()
{
// インターネット設定を一時的に保存する
SaveCurrentInternetSetting();
nn::Result result;
// SDカードのインターネット設定を反映する
ReadSetting();
result = nn::ac::CTR::InitializeInternal();
COMMON_LOGGER_RESULT_IF_FAILED(result);
s_NtpThread.Start( NtpThreadFunc, s_NtpThreadStack);
}