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.
|
// 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);
|
static unsigned char s_PostBuffer[4096] NN_ATTRIBUTE_ALIGN(4096);
|
||||||
|
|
||||||
|
// DEV6接続用証明書
|
||||||
u8 USER_ORIGIN_CLIENT_CERT_DATA[] =
|
u8 USER_ORIGIN_CLIENT_CERT_DATA[] =
|
||||||
{
|
{
|
||||||
0x30, 0x82, 0x03, 0xef, 0x30, 0x82, 0x02, 0xd7, 0xa0, 0x03, 0x02,
|
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
|
0xe2, 0x51, 0xa0, 0x1d, 0x87, 0xf1, 0xe9, 0x13, 0x9f, 0x1d
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// DEV6接続用秘密鍵
|
||||||
u8 USER_ORIGIN_PRIVATE_KEY[] =
|
u8 USER_ORIGIN_PRIVATE_KEY[] =
|
||||||
{
|
{
|
||||||
0x30, 0x82, 0x02, 0x5e, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00,
|
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())
|
BgsCommunicator::BgsCommunicator() : m_Result(nn::ResultSuccess())
|
||||||
{
|
{
|
||||||
// TODO 自動生成されたコンストラクター・スタブ
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BgsCommunicator::~BgsCommunicator()
|
BgsCommunicator::~BgsCommunicator()
|
||||||
@ -214,6 +215,7 @@ bool BgsCommunicator::Execute(const void* buf, size_t size)
|
|||||||
|
|
||||||
//通信先の設定
|
//通信先の設定
|
||||||
//<<HTTPS特有コード>>URLの先頭文字はhttpsとなります
|
//<<HTTPS特有コード>>URLの先頭文字はhttpsとなります
|
||||||
|
// TODO:DEV6用URL
|
||||||
m_Result = m_HttpCon.Initialize("https://10.12.3.73/bgs/services/BusinessGatewaySOAP", nn::http::REQUEST_METHOD_POST);
|
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);
|
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||||
|
|
||||||
@ -234,16 +236,15 @@ bool BgsCommunicator::Execute(const void* buf, size_t size)
|
|||||||
<<HTTPS特有コード>>SSL処理用設定
|
<<HTTPS特有コード>>SSL処理用設定
|
||||||
------------------------------------------------------------------------ */
|
------------------------------------------------------------------------ */
|
||||||
//ルート証明書の設定
|
//ルート証明書の設定
|
||||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED( m_HttpCon.SetRootCa( NNSSL_CACERT_PUBLIC_CA_1 ));
|
m_Result = 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_Result);
|
||||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED( m_HttpCon.SetRootCa( NNSSL_CACERT_PUBLIC_CA_3 ));
|
m_Result = m_HttpCon.SetRootCa(NNSSL_CACERT_PUBLIC_CA_2);
|
||||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED( m_HttpCon.SetRootCa( NNSSL_CACERT_PUBLIC_CA_4 ));
|
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);
|
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),
|
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)); //クライアント証明書を設定する。
|
USER_ORIGIN_PRIVATE_KEY, sizeof(USER_ORIGIN_PRIVATE_KEY)); //クライアント証明書を設定する。
|
||||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
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通信がすでに実行中の場合は、空きができるまでブロック
|
m_Result = m_HttpCon.Connect(); //リクエストの送信を開始する。機器が同時実行可能な最大個数のHTTP通信がすでに実行中の場合は、空きができるまでブロック
|
||||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t BgsCommunicator::GetBodySize()
|
size_t BgsCommunicator::GetBodySize()
|
||||||
{
|
{
|
||||||
/* ------------------------------------------------------------------------
|
|
||||||
HTTPレスポンスに対するアプリ側の処理。(この部分はアプリ毎に任意の処理を行う。本デモでは例として、メッセージヘッダの一部とメッセージボディ全体をダンプする処理を実装する。)
|
|
||||||
------------------------------------------------------------------------ */
|
|
||||||
//HTTPヘッダの情報読み出し
|
//HTTPヘッダの情報読み出し
|
||||||
s32 statusCode = 0;
|
s32 statusCode = 0;
|
||||||
m_Result = m_HttpCon.GetStatusCode(&statusCode); //Statusコードの取得
|
m_Result = m_HttpCon.GetStatusCode(&statusCode); //Statusコードの取得
|
||||||
@ -285,7 +274,7 @@ size_t BgsCommunicator::GetBodySize()
|
|||||||
NN_LOG("---HTTP ResultCode = %d---\n", statusCode);
|
NN_LOG("---HTTP ResultCode = %d---\n", statusCode);
|
||||||
|
|
||||||
char headerFields[1024];
|
char headerFields[1024];
|
||||||
memset(headerFields, 0, sizeof(headerFields));
|
std::memset(headerFields, 0, sizeof(headerFields));
|
||||||
u32 fieldLen = sizeof(headerFields);
|
u32 fieldLen = sizeof(headerFields);
|
||||||
m_Result = m_HttpCon.GetHeaderField("Content-Length", headerFields, fieldLen, &fieldLen); //特定のヘッダフィールドをラベルから取得
|
m_Result = m_HttpCon.GetHeaderField("Content-Length", headerFields, fieldLen, &fieldLen); //特定のヘッダフィールドをラベルから取得
|
||||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||||
@ -298,7 +287,7 @@ size_t BgsCommunicator::GetBodySize()
|
|||||||
bool BgsCommunicator::GetBody(u8 *buf, size_t size)
|
bool BgsCommunicator::GetBody(u8 *buf, size_t size)
|
||||||
{
|
{
|
||||||
//HTTPレスポンスの取得
|
//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)が返る*/
|
m_Result = m_HttpCon.Read(buf, size); //読み取りが完了するまでブロック。Bodyの最後までの読み込みが成功した場合は、Successを表すResultが返る。バッファサイズが足りない場合は、エラー(Description==ER_RES_BODYBUF_SHORTAGEのResult)が返る*/
|
||||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||||
return true;
|
return true;
|
||||||
@ -306,9 +295,18 @@ bool BgsCommunicator::GetBody(u8 *buf, size_t size)
|
|||||||
|
|
||||||
bool BgsCommunicator::Finalize()
|
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();
|
m_Result = common::FinalizeNetwork();
|
||||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(m_Result);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nn::Result BgsCommunicator::GetLastResult()
|
||||||
|
{
|
||||||
|
return m_Result;
|
||||||
|
}
|
||||||
|
|
||||||
} /* namespace ConsoleRestore */
|
} /* 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;
|
const size_t s_GxHeapSize = 0x800000;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user