From 833a2b5b4b9c3567d9a768cb52607a4b3487f7f9 Mon Sep 17 00:00:00 2001 From: N2614 Date: Thu, 19 Jan 2012 07:18:20 +0000 Subject: [PATCH] =?UTF-8?q?BgsCommunicator=E3=81=AEResult=E3=82=92?= =?UTF-8?q?=E5=8F=96=E5=BE=97=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../ConsoleRestore/BgsCommunicator.cpp | 44 +++++++++---------- .../BgsCommunicator/test_BgsCommunicator.cpp | 26 ----------- 2 files changed, 21 insertions(+), 49 deletions(-) diff --git a/trunk/ConsoleDataMigration/sources/ConsoleRestore/BgsCommunicator.cpp b/trunk/ConsoleDataMigration/sources/ConsoleRestore/BgsCommunicator.cpp index d7eecff..6e87da2 100644 --- a/trunk/ConsoleDataMigration/sources/ConsoleRestore/BgsCommunicator.cpp +++ b/trunk/ConsoleDataMigration/sources/ConsoleRestore/BgsCommunicator.cpp @@ -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) //通信先の設定 //<>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) <>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 */ diff --git a/trunk/ConsoleDataMigration/sources/tests/ConsoleRestore/BgsCommunicator/test_BgsCommunicator.cpp b/trunk/ConsoleDataMigration/sources/tests/ConsoleRestore/BgsCommunicator/test_BgsCommunicator.cpp index 77463c3..434ea62 100644 --- a/trunk/ConsoleDataMigration/sources/tests/ConsoleRestore/BgsCommunicator/test_BgsCommunicator.cpp +++ b/trunk/ConsoleDataMigration/sources/tests/ConsoleRestore/BgsCommunicator/test_BgsCommunicator.cpp @@ -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; }