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) void ConvertTimeZoneString(const char* str)
{ {
s_TimeZone.hour = 0; s_TimeZone.hour = 0;
@ -624,6 +626,17 @@ bool UpdateNetworkSetting(nn::ac::NetworkSetting& networkSetting)
networkSetting.proxy.enable = false; networkSetting.proxy.enable = false;
networkSetting.other.enableUPnP = 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 ); result = nn::ac::UpdateNetworkSetting( 0, networkSetting );
if(!result.IsSuccess()) if(!result.IsSuccess())
{ {
@ -988,6 +1001,11 @@ TimeZone GetTimeZone()
return s_TimeZone; return s_TimeZone;
} }
CheckedNetworkSetting* GetTempNetworkSetting()
{
return &s_CurrentNetowrkSetting1;
}
void ImportData() void ImportData()
{ {
static bool init = true; static bool init = true;

View File

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

View File

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