mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
BgsCommunicatorのResultを取得できるように
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@579 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
5fa653b8fb
commit
833a2b5b4b
@ -29,6 +29,7 @@ namespace
|
||||
// Buffer for POST data must be 4096-byte aligned, and a multiple of 4096 bytes.
|
||||
static unsigned char s_PostBuffer[4096] NN_ATTRIBUTE_ALIGN(4096);
|
||||
|
||||
// DEV6接続用証明書
|
||||
u8 USER_ORIGIN_CLIENT_CERT_DATA[] =
|
||||
{
|
||||
0x30, 0x82, 0x03, 0xef, 0x30, 0x82, 0x02, 0xd7, 0xa0, 0x03, 0x02,
|
||||
@ -125,6 +126,7 @@ u8 USER_ORIGIN_CLIENT_CERT_DATA[] =
|
||||
0xe2, 0x51, 0xa0, 0x1d, 0x87, 0xf1, 0xe9, 0x13, 0x9f, 0x1d
|
||||
};
|
||||
|
||||
// DEV6接続用秘密鍵
|
||||
u8 USER_ORIGIN_PRIVATE_KEY[] =
|
||||
{
|
||||
0x30, 0x82, 0x02, 0x5e, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00,
|
||||
@ -189,7 +191,6 @@ u8 USER_ORIGIN_PRIVATE_KEY[] =
|
||||
|
||||
BgsCommunicator::BgsCommunicator() : m_Result(nn::ResultSuccess())
|
||||
{
|
||||
// TODO 自動生成されたコンストラクター・スタブ
|
||||
}
|
||||
|
||||
BgsCommunicator::~BgsCommunicator()
|
||||
@ -214,6 +215,7 @@ bool BgsCommunicator::Execute(const void* buf, size_t size)
|
||||
|
||||
//通信先の設定
|
||||
//<<HTTPS特有コード>>URLの先頭文字はhttpsとなります
|
||||
// TODO:DEV6用URL
|
||||
m_Result = m_HttpCon.Initialize("https://10.12.3.73/bgs/services/BusinessGatewaySOAP", nn::http::REQUEST_METHOD_POST);
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||
|
||||
@ -234,16 +236,15 @@ bool BgsCommunicator::Execute(const void* buf, size_t size)
|
||||
<<HTTPS特有コード>>SSL処理用設定
|
||||
------------------------------------------------------------------------ */
|
||||
//ルート証明書の設定
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED( m_HttpCon.SetRootCa( NNSSL_CACERT_PUBLIC_CA_1 ));
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED( m_HttpCon.SetRootCa( NNSSL_CACERT_PUBLIC_CA_2 ));
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED( m_HttpCon.SetRootCa( NNSSL_CACERT_PUBLIC_CA_3 ));
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED( m_HttpCon.SetRootCa( NNSSL_CACERT_PUBLIC_CA_4 ));
|
||||
m_Result = m_HttpCon.SetRootCa(NNSSL_CACERT_PUBLIC_CA_1);
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED( m_Result);
|
||||
m_Result = m_HttpCon.SetRootCa(NNSSL_CACERT_PUBLIC_CA_2);
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED( m_Result);
|
||||
m_Result = m_HttpCon.SetRootCa(NNSSL_CACERT_PUBLIC_CA_3);\
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED( m_Result);
|
||||
m_Result = m_HttpCon.SetRootCa(NNSSL_CACERT_PUBLIC_CA_4);
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||
|
||||
s32 sslError;
|
||||
m_HttpCon.GetSslError(&sslError);
|
||||
NN_LOG("sslerror = %x\n", sslError);
|
||||
|
||||
m_Result = m_HttpCon.SetClientCert(USER_ORIGIN_CLIENT_CERT_DATA, sizeof(USER_ORIGIN_CLIENT_CERT_DATA),
|
||||
USER_ORIGIN_PRIVATE_KEY, sizeof(USER_ORIGIN_PRIVATE_KEY)); //クライアント証明書を設定する。
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||
@ -261,23 +262,11 @@ bool BgsCommunicator::Execute(const void* buf, size_t size)
|
||||
m_Result = m_HttpCon.Connect(); //リクエストの送信を開始する。機器が同時実行可能な最大個数のHTTP通信がすでに実行中の場合は、空きができるまでブロック
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||
|
||||
nn::http::ResultCode resultCode;
|
||||
m_Result = m_HttpCon.GetError(&resultCode);
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||
NN_LOG("resultCode = %x\n", resultCode);
|
||||
|
||||
m_Result = m_HttpCon.GetSslError(&sslError);
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||
NN_LOG("sslerror = %x\n", sslError);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
size_t BgsCommunicator::GetBodySize()
|
||||
{
|
||||
/* ------------------------------------------------------------------------
|
||||
HTTPレスポンスに対するアプリ側の処理。(この部分はアプリ毎に任意の処理を行う。本デモでは例として、メッセージヘッダの一部とメッセージボディ全体をダンプする処理を実装する。)
|
||||
------------------------------------------------------------------------ */
|
||||
//HTTPヘッダの情報読み出し
|
||||
s32 statusCode = 0;
|
||||
m_Result = m_HttpCon.GetStatusCode(&statusCode); //Statusコードの取得
|
||||
@ -285,7 +274,7 @@ size_t BgsCommunicator::GetBodySize()
|
||||
NN_LOG("---HTTP ResultCode = %d---\n", statusCode);
|
||||
|
||||
char headerFields[1024];
|
||||
memset(headerFields, 0, sizeof(headerFields));
|
||||
std::memset(headerFields, 0, sizeof(headerFields));
|
||||
u32 fieldLen = sizeof(headerFields);
|
||||
m_Result = m_HttpCon.GetHeaderField("Content-Length", headerFields, fieldLen, &fieldLen); //特定のヘッダフィールドをラベルから取得
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||
@ -298,7 +287,7 @@ size_t BgsCommunicator::GetBodySize()
|
||||
bool BgsCommunicator::GetBody(u8 *buf, size_t size)
|
||||
{
|
||||
//HTTPレスポンスの取得
|
||||
memset(buf, 0, size);
|
||||
std::memset(buf, 0, size);
|
||||
m_Result = m_HttpCon.Read(buf, size); //読み取りが完了するまでブロック。Bodyの最後までの読み込みが成功した場合は、Successを表すResultが返る。バッファサイズが足りない場合は、エラー(Description==ER_RES_BODYBUF_SHORTAGEのResult)が返る*/
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||
return true;
|
||||
@ -306,9 +295,18 @@ bool BgsCommunicator::GetBody(u8 *buf, size_t size)
|
||||
|
||||
bool BgsCommunicator::Finalize()
|
||||
{
|
||||
m_Result = m_HttpCon.Finalize();
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||
m_Result = nn::http::Finalize();
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||
m_Result = common::FinalizeNetwork();
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||
return true;
|
||||
}
|
||||
|
||||
nn::Result BgsCommunicator::GetLastResult()
|
||||
{
|
||||
return m_Result;
|
||||
}
|
||||
|
||||
} /* namespace ConsoleRestore */
|
||||
|
||||
@ -63,32 +63,6 @@ void PutString(std::string str)
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
void DumpHttpBody(u8* pBodyBuf, size_t contentLength)
|
||||
{
|
||||
#ifndef NN_SWITCH_DISABLE_DEBUG_PRINT
|
||||
NN_LOG("---HTTP Body Dump(Content-Length=%d)---\n", contentLength);
|
||||
int hexCheckCount = 0;
|
||||
for (int i = 0; i < contentLength; ++i)
|
||||
{
|
||||
NN_LOG("%02x ", pBodyBuf[i]);
|
||||
++hexCheckCount;
|
||||
if (hexCheckCount == 16)
|
||||
{
|
||||
NN_LOG("\n");
|
||||
hexCheckCount = 0;
|
||||
}
|
||||
}
|
||||
|
||||
NN_LOG("\n---HTTP Body Dump END---------------------------------\n");
|
||||
#else
|
||||
NN_UNUSED_VAR(pBodyBuf);
|
||||
NN_UNUSED_VAR(contentLength);
|
||||
NN_UNUSED_VAR(statusCode);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
const size_t s_GxHeapSize = 0x800000;
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user