OSDN Git Service

20090209のJHCコード追加(unit_tests)
authornakai <nakai@1ed66053-1c2d-0410-8867-f7571e6e31d3>
Tue, 10 Feb 2009 00:50:15 +0000 (00:50 +0000)
committernakai <nakai@1ed66053-1c2d-0410-8867-f7571e6e31d3>
Tue, 10 Feb 2009 00:50:15 +0000 (00:50 +0000)
git-svn-id: http://10.144.169.20/repos/um/branches/l7vsd-3.x-shamshel@6724 1ed66053-1c2d-0410-8867-f7571e6e31d3

unit_tests/sessionless/sessionless_ut.cpp
unit_tests/sslid/protocol_module_sslid_test.cpp
unit_tests/sslid/ssl_protocol_module_base_test.cpp
unit_tests/sslid/sslid_replication_data_processor_test.cpp
unit_tests/sslid/sslid_session_data_processor_test.cpp
unit_tests/sslid/sslid_to_be_test_file.h

index 20da207..f3065ba 100644 (file)
@@ -1556,27 +1556,27 @@ void handle_client_recv_test(){
     recive_data_global.recive_buffer = recive_data_global.recive_buffer1;
     recive_data_global.send_status_list.clear();
 
-    memcpy(request.c_array(), "GET / HTTP/1.0\r\nCookie: monkey=123456789012345678901"
-        "234567890123456789012345678901234567890123456789012345678901", 112);
-    request_len = 112;
+    memcpy(request.c_array(), "GET / HTTP/1.0\r\nHOST: 192.168.120.1\r\nCookie: "
+            "monkey=1\r\nContent-Length: 43\r\n\r\n0123456789012345678901234567890123456789012", 120);
+    request_len = 120;
 
     ret = handle_client_recv(boost::this_thread::get_id(), request, request_len);
 
-    BOOST_CHECK_EQUAL(ret, CLIENT_RECV);
+    BOOST_CHECK_EQUAL(ret, REALSERVER_CONNECT);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer, recive_data_global.recive_buffer1);
-    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, 112u);
+    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, 120u);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 0u);
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
 
     //メモリの内容をチェックする
-    int cmp_ret = memcmp(request.c_array(), recive_data_global.recive_buffer, 112u);
+    int cmp_ret = memcmp(request.c_array(), recive_data_global.recive_buffer, 120u);
     BOOST_CHECK_EQUAL(cmp_ret, 0);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_division, EDIT_DIVISION_NO_EDIT);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_division, EDIT_DIVISION_EDIT);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 0u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 120u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 112u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
 
     cout << "[106]------------------------------------------" << endl;
     // unit_test[106] データバッファ残サイズ < リクエストデータサイズ
@@ -2375,7 +2375,7 @@ void handle_client_recv_test(){
 
     BOOST_CHECK_EQUAL(ret, REALSERVER_CONNECT);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, USE_BUFFER_SIZE);
-    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 30u);
+    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 20u);
 
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
@@ -2410,7 +2410,7 @@ void handle_client_recv_test(){
 
     BOOST_CHECK_EQUAL(ret, REALSERVER_CONNECT);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, USE_BUFFER_SIZE);
-    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 30u);
+    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 20u);
 
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
@@ -2449,15 +2449,15 @@ void handle_client_recv_test(){
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_division, EDIT_DIVISION_EDIT);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 52u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 56u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_division, EDIT_DIVISION_NO_EDIT);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 8u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->status, SEND_NG);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->edit_division, EDIT_DIVISION_NO_EDIT);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_rest_size, 0u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_possible_size, 0u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 56u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 4u);
 
     cout << "[131]------------------------------------------" << endl;
     // unit_test[131] リクエストデータ残サイズ = 0
@@ -2483,7 +2483,7 @@ void handle_client_recv_test(){
 
     BOOST_CHECK_EQUAL(ret, REALSERVER_CONNECT);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, USE_BUFFER_SIZE);
-    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 30u);
+    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 20u);
 
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
@@ -2540,7 +2540,7 @@ void handle_client_recv_test(){
     recive_data_global.recive_buffer = recive_data_global.recive_buffer1;
     recive_data_global.send_status_list.clear();
 
-    memcpy(request.c_array(), "EST / HTTP/1.0234567890123456789012345678901234567", REQUEST_BUFFER_SIZE);
+    memcpy(request.c_array(), "EST / HTTP/1.0\r\n4567890123456789012345678901234567", REQUEST_BUFFER_SIZE);
     request_len = REQUEST_BUFFER_SIZE;
 
     ret = handle_client_recv(boost::this_thread::get_id(), request, request_len);
@@ -2595,17 +2595,17 @@ void handle_client_recv_test(){
     recive_data_global.recive_buffer = recive_data_global.recive_buffer1;
     recive_data_global.send_status_list.clear();
 
-    memcpy(request.c_array(), "GET / HTTP/1.2234567890123456789012345678901234567", REQUEST_BUFFER_SIZE);
+    memcpy(request.c_array(), "GET / HTTP/1.22\r\n567890123456789012345678901234567", REQUEST_BUFFER_SIZE);
     request_len = REQUEST_BUFFER_SIZE;
 
     ret = handle_client_recv(boost::this_thread::get_id(), request, request_len);
 
-    BOOST_CHECK_EQUAL(ret, CLIENT_RECV);
+    BOOST_CHECK_EQUAL(ret, REALSERVER_CONNECT);
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 50u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_division, EDIT_DIVISION_EDIT);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 50u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_division, EDIT_DIVISION_NO_EDIT);
 
     cout << "[136]------------------------------------------" << endl;
     // unit_test[136] リクエストデータ残サイズ > 0
@@ -2665,7 +2665,7 @@ void handle_client_recv_test(){
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 50u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 50u);
 
     cout << "[139]------------------------------------------" << endl;
     // unit_test[139] リクエストデータ残サイズ > 0
@@ -2685,7 +2685,7 @@ void handle_client_recv_test(){
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 50u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 50u);
 
     cout << "[140]------------------------------------------" << endl;
     // unit_test[140] リクエストデータ残サイズ > 0
@@ -2707,10 +2707,10 @@ void handle_client_recv_test(){
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 38u);
 
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 38u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 12u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 0u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->status, SEND_NG);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 38u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 12u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_possible_size, 0u);
 
     cout << "[141]------------------------------------------" << endl;
     // unit_test[141] リクエストデータ残サイズ > 0
@@ -2737,7 +2737,7 @@ void handle_client_recv_test(){
     // unit_test[142] リクエストデータ残サイズ > 0
     // unit_test[142]  ●出力の送信状態リスト: 1:送信待 2:送信待
     recive_data_global.recive_buffer_max_size = USE_BUFFER_SIZE;
-    recive_data_global.recive_buffer_rest_size = USE_BUFFER_SIZE;
+    recive_data_global.recive_buffer_rest_size = 78;
     recive_data_global.recive_buffer = recive_data_global.recive_buffer1;
     recive_data_global.send_status_list.clear();
 
@@ -2804,13 +2804,6 @@ void handle_client_recv_test(){
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_possible_size, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 2u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 48u);
-    init_send_status(send_status_temp);
-    send_status_temp.status = SEND_NG;
-    send_status_temp.send_offset = 0;
-    send_status_temp.send_end_size = 0;
-    send_status_temp.unsend_size = 12;
-    recive_data_global.send_status_list.push_back(send_status_temp);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 2u);
 
     cout << "[144]------------------------------------------" << endl;
     // unit_test[144] リクエストデータ残サイズ > 0
@@ -2844,12 +2837,12 @@ void handle_client_recv_test(){
     recive_data_global.recive_buffer = recive_data_global.recive_buffer1;
     recive_data_global.send_status_list.clear();
 
-    memcpy(request.c_array(), "GET / HTTP/1.0234567890123456789012345678901234567", REQUEST_BUFFER_SIZE);
+    memcpy(request.c_array(), "GET / HTTP/1.0\r\n4567890123456789012345678901234567", REQUEST_BUFFER_SIZE);
     request_len = REQUEST_BUFFER_SIZE;
 
     ret = handle_client_recv(boost::this_thread::get_id(), request, request_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_CONNECT);
+    BOOST_CHECK_EQUAL(ret, CLIENT_RECV);
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
@@ -3581,7 +3574,7 @@ void handle_realserver_connect_test(){
 
     init_send_status(send_status_temp);
     send_status_temp.status = SEND_OK;
-    send_status_temp.send_offset = 10;
+    send_status_temp.send_offset = 0;
     send_status_temp.send_end_size = 0;
     send_status_temp.send_possible_size = MAX_BUFFER_SIZE - 10;
     send_status_temp.edit_division = EDIT_DIVISION_EDIT;
@@ -3602,7 +3595,7 @@ void handle_realserver_connect_test(){
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_end_size, MAX_BUFFER_SIZE - 12u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 2u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 10u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_division, EDIT_DIVISION_NO_EDIT);
 
     cout << "[170]------------------------------------------" << endl;
@@ -3710,7 +3703,7 @@ void handle_realserver_connect_test(){
 
     init_send_status(send_status_temp);
     send_status_temp.status = SEND_OK;
-    send_status_temp.send_offset = 10;
+    send_status_temp.send_offset = 0;
     send_status_temp.send_end_size = 0;
     send_status_temp.send_possible_size = MAX_BUFFER_SIZE - 10;
     send_status_temp.edit_division = EDIT_DIVISION_EDIT;
@@ -3731,7 +3724,7 @@ void handle_realserver_connect_test(){
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_end_size, MAX_BUFFER_SIZE - 12u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 2u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 10u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_division, EDIT_DIVISION_NO_EDIT);
 
     cout << "[173]------------------------------------------" << endl;
@@ -3779,11 +3772,11 @@ void handle_realserver_connect_test(){
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_division, EDIT_DIVISION_EDIT);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->data,
-            "X-Forwarded-For: 10.10.2.2, 10.10.10.1\r\n");
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->data_size, 40u);
+            "X-Forwarded-For: 10.10.2.2, 10.10.10.1");
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->data_size, 38u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->insert_posission,
             MAX_BUFFER_SIZE - 1u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->replace_size, 28u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->replace_size, 26u);
 
     cout << "[174]------------------------------------------" << endl;
     // unit_test[174] 編集データリストが空でない場合
@@ -3825,15 +3818,15 @@ void handle_realserver_connect_test(){
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_end_size, MAX_BUFFER_SIZE);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 32u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 30u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_division, EDIT_DIVISION_EDIT);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->data,
-            "X-Forwarded-For: 10.10.2.2, 10.10.10.1\r\n");
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->data_size, 40u);
+            "X-Forwarded-For: 10.10.2.2, 10.10.10.1");
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->data_size, 38u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->insert_posission,
             MAX_BUFFER_SIZE);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->replace_size, 28u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->replace_size, 26u);
 
     cout << "[175]------------------------------------------" << endl;
     // unit_test[175] 編集データリストが空でない場合
@@ -3877,11 +3870,11 @@ void handle_realserver_connect_test(){
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_division, EDIT_DIVISION_EDIT);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->data,
-            "X-Forwarded-For: 10.10.2.2, 10.10.10.1\r\n");
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->data_size, 40u);
+            "X-Forwarded-For: 10.10.2.2, 10.10.10.1");
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->data_size, 38u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->insert_posission,
             MAX_BUFFER_SIZE + 2u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->replace_size, 28u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->edit_data_list.begin()->replace_size, 26u);
 
     cout << "[176]------------------------------------------" << endl;
     // unit_test[176] 編集区分 = 編集なし
@@ -4276,7 +4269,7 @@ void handle_realserver_send_test(){
     real_recive_data.send_status_list.clear();
     real_recive_data.send_status_list.push_back(real_send_status);
 
-     thread_data.client_endpoint_tcp = endpoint;
+    thread_data.client_endpoint_tcp = endpoint;
     thread_data.recive_data_map.clear();
     thread_data.recive_data_map.insert(std::pair<boost::asio::ip::tcp::endpoint, recive_data>(endpoint,real_recive_data));
 
@@ -4327,7 +4320,6 @@ void handle_realserver_send_test(){
     this->session_thread_data_map.clear();
     this->session_thread_data_map.insert(std::pair<boost::thread::id, session_thread_data_sessionless*>(boost::this_thread::get_id(),&thread_data));
     event_status = this->handle_realserver_send(boost::this_thread::get_id());
-    send_status = thread_data.recive_data_map[endpoint].send_status_list.front().status;
 
     BOOST_CHECK_EQUAL(event_status, FINALIZE); //遷移先ステータスを設定する
 
@@ -4372,7 +4364,6 @@ void handle_realserver_send_test(){
     this->session_thread_data_map.clear();
     this->session_thread_data_map.insert(std::pair<boost::thread::id, session_thread_data_sessionless*>(boost::this_thread::get_id(),&thread_data));
     event_status = this->handle_realserver_send(boost::this_thread::get_id());
-    send_status = thread_data.recive_data_map[endpoint].send_status_list.front().status;
 
     BOOST_CHECK_EQUAL(event_status, FINALIZE); //遷移先ステータスを設定する
 
@@ -4416,9 +4407,9 @@ void handle_realserver_send_test(){
     this->session_thread_data_map.clear();
     this->session_thread_data_map.insert(std::pair<boost::thread::id, session_thread_data_sessionless*>(boost::this_thread::get_id(),&thread_data));
     event_status = this->handle_realserver_send(boost::this_thread::get_id());
-    send_status = thread_data.recive_data_map[endpoint].send_status_list.front().status;
+    send_status = thread_data.recive_data_map[endpoint].send_status_list.back().status;
 
-    BOOST_CHECK_EQUAL(event_status, CLIENT_RECV); //遷移先ステータスを設定する
+    BOOST_CHECK_EQUAL(event_status, REALSERVER_CONNECT); //遷移先ステータスを設定する
     BOOST_CHECK_EQUAL(send_status, SEND_OK); //送信データ残サイズ > 0,送信状態に送信継続を設定する
 
     cout << "[198]------------------------------------------" << endl;
@@ -4439,10 +4430,10 @@ void handle_realserver_send_test(){
     this->session_thread_data_map.clear();
     this->session_thread_data_map.insert(std::pair<boost::thread::id, session_thread_data_sessionless*>(boost::this_thread::get_id(),&thread_data));
     event_status = this->handle_realserver_send(boost::this_thread::get_id());
-    send_status = thread_data.recive_data_map[endpoint].send_status_list.front().status;
+    send_status = thread_data.recive_data_map[endpoint].send_status_list.back().status;
 
     BOOST_CHECK_EQUAL(event_status, CLIENT_RECV); //遷移先ステータスを設定する
-    BOOST_CHECK_EQUAL(send_status, SEND_CONTINUE); //送信データ残サイズ = 0,送信状態に送信済を設定する
+    BOOST_CHECK_EQUAL(send_status, SEND_CONTINUE); //送信データ残サイズ > 0,送信状態に送信済を設定する
 
     cout << "[199]------------------------------------------" << endl;
     //unit_test[199] 送信状態->SEND_END
@@ -4458,7 +4449,6 @@ void handle_realserver_send_test(){
     this->session_thread_data_map.clear();
     this->session_thread_data_map.insert(std::pair<boost::thread::id, session_thread_data_sessionless*>(boost::this_thread::get_id(),&thread_data));
     event_status = this->handle_realserver_send(boost::this_thread::get_id());
-    send_status = thread_data.recive_data_map[endpoint].send_status_list.front().status;
 
     BOOST_CHECK_EQUAL(event_status, FINALIZE); //遷移先ステータスを設定する
 
@@ -4479,9 +4469,9 @@ void handle_realserver_send_test(){
     this->session_thread_data_map.clear();
     this->session_thread_data_map.insert(std::pair<boost::thread::id, session_thread_data_sessionless*>(boost::this_thread::get_id(),&thread_data));
     event_status = this->handle_realserver_send(boost::this_thread::get_id());
-    send_status = thread_data.recive_data_map[endpoint].send_status_list.front().status;
+    send_status = thread_data.recive_data_map[endpoint].send_status_list.back().status;
 
-    BOOST_CHECK_EQUAL(event_status,  REALSERVER_CONNECT); //遷移先ステータスを設定する
+    BOOST_CHECK_EQUAL(event_status, CLIENT_RECV); //遷移先ステータスを設定する
     BOOST_CHECK_EQUAL(send_status, SEND_END); //送信状態に送信済を設定する
 
     cout << "[201]------------------------------------------" << endl;
@@ -4710,7 +4700,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, 30u);
     //送信バッファの内容をチェックする。
     int cmp_ret = memcmp(recive_data_global.recive_buffer, send_buffer.c_array(), 30);
@@ -4759,7 +4749,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, 30u);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(recive_data_global.recive_buffer, send_buffer.c_array(), 30);
@@ -4799,7 +4789,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, 50u);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(recive_data_global.recive_buffer, send_buffer.c_array(), 50);
@@ -4846,7 +4836,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, MAX_BUFFER_SIZE);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(), "POST /sorry.htm HTTP/1.0\r\nX-Forwarded-For: 10.10.2.2, 10.10.10.1\r\n", 66);
@@ -4893,7 +4883,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, MAX_BUFFER_SIZE);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(), "POST /sorry.htm HTTP/1.0\r\nX-Forwarded-For: 10.10.10.1\r\n", 55);
@@ -4945,7 +4935,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, 44u);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(), recive_data_global.recive_buffer + MAX_BUFFER_SIZE, 2);
@@ -4999,7 +4989,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, 44u);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(), recive_data_global.recive_buffer + MAX_BUFFER_SIZE, 2);
@@ -5045,7 +5035,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, MAX_BUFFER_SIZE);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(), "POST ", 5);
@@ -5094,7 +5084,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, MAX_BUFFER_SIZE);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(), "POST /sorry.htm HTTP/1.0\r\nX-Forwarded-For: 10.10.2.2, 10.10.10.1\r\n", 66);
@@ -5142,7 +5132,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, MAX_BUFFER_SIZE);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(), "POST /sorry.htm", 15);
@@ -5186,7 +5176,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, 88u);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(),
@@ -5226,7 +5216,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, 88u);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(),
@@ -5269,7 +5259,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, MAX_BUFFER_SIZE);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(), "POST /sorry.htm", 15);
@@ -5317,7 +5307,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, MAX_BUFFER_SIZE - 2u);
 
     //送信バッファの内容をチェックする。
@@ -5370,7 +5360,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, MAX_BUFFER_SIZE);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(), "POST /sorry.htm", 15);
@@ -5420,7 +5410,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, MAX_BUFFER_SIZE);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(), "POST /sorry.htm", 15);
@@ -5468,7 +5458,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, 50u);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(recive_data_global.recive_buffer, send_buffer.c_array(), 50);
@@ -5506,7 +5496,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, MAX_BUFFER_SIZE);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(recive_data_global.recive_buffer, send_buffer.c_array(), MAX_BUFFER_SIZE);
@@ -5544,7 +5534,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, MAX_BUFFER_SIZE);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(recive_data_global.recive_buffer, send_buffer.c_array(), MAX_BUFFER_SIZE);
@@ -5582,7 +5572,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, 78u);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(),
@@ -5623,7 +5613,7 @@ void handle_sorryserver_connect_test(){
 
     ret = handle_sorryserver_connect(boost::this_thread::get_id(), send_buffer, send_buffer_len);
 
-    BOOST_CHECK_EQUAL(ret, REALSERVER_SEND);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_SEND);
     BOOST_CHECK_EQUAL(send_buffer_len, 49u);
     //送信バッファの内容をチェックする。
     cmp_ret = memcmp(send_buffer.c_array(), "GET /sorry.htm HTTP/1.0\r\nHOST: KKKKKKKKKKKKKK\r\n\r\n", 49);
@@ -5898,7 +5888,7 @@ void handle_sorryserver_send_test() {
     //unit_test[247] test data: 送信状態に送信待を設定,遷移先ステータスを設定する
     sorr_send_status.send_possible_size = 0u;//送信可能データサイズ = 0
     sorr_send_status.status = SEND_OK;
-    sorr_send_status.send_rest_size = 1u;//送信データ残サイズ > 0
+    sorr_send_status.send_rest_size = 0u;//送信データ残サイズ = 0
     sorr_send_status1.status = SEND_OK;//送信状態->SEND_OK
     sorr_recive_data.send_status_list.clear();
     sorr_recive_data.send_status_list.push_back(sorr_send_status);
@@ -5979,7 +5969,7 @@ void handle_sorryserver_send_test() {
     this->session_thread_data_map.insert(std::pair<boost::thread::id, session_thread_data_sessionless*>(boost::this_thread::get_id(),&thread_data));
     event_status = this->handle_sorryserver_send(boost::this_thread::get_id());
 
-    BOOST_CHECK_EQUAL(event_status, CLIENT_RECV); //遷移先ステータスを設定する
+    BOOST_CHECK_EQUAL(event_status, SORRYSERVER_CONNECT); //遷移先ステータスを設定する
 
     cout << "[251]------------------------------------------" << endl;
     //unit_test[251] 送信状態->SEND_END,SEND_OK/送信可能データサイズ = 0
@@ -6062,6 +6052,7 @@ void handle_sorryserver_send_test() {
 
     BOOST_CHECK_EQUAL(event_status,FINALIZE); //送信状態に送信待を設定する
 }
+
 //handle_realserver_recv(tcp) 郎希倹
 void handle_realserver_recv_tcp_test() {
     boost::asio::ip::tcp::endpoint rs_endpoint;
@@ -6175,7 +6166,7 @@ void handle_realserver_recv_tcp_test() {
     response_len = 80;
 
     ret = handle_realserver_recv(boost::this_thread::get_id(), rs_endpoint, response, response_len);
-    BOOST_CHECK_EQUAL(ret, FINALIZE);;
+    BOOST_CHECK_EQUAL(ret, FINALIZE);
 
     cout << "[261]------------------------------------------" << endl;
     // unit_test[261] new失敗の場合
@@ -6246,7 +6237,6 @@ void handle_realserver_recv_tcp_test() {
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, MAX_BUFFER_SIZE);
 
     // unit_test_part1 begin:
-    //(異常系)
     send_status status_END;
     init_send_status(status_END);
     status_END.status = SEND_END;
@@ -6358,7 +6348,7 @@ void handle_realserver_recv_tcp_test() {
         }
 
         ret = handle_realserver_recv(boost::this_thread::get_id(), rs_endpoint, response, response_len);
-        std::cout << "[" << 259 + i << "]------------------------------------------" << std::endl;
+        std::cout << "[" << 345 + i << "]------------------------------------------" << std::endl;
         BOOST_CHECK_EQUAL(ret, FINALIZE);
     }
 
@@ -7005,7 +6995,7 @@ void handle_realserver_recv_tcp_test() {
 
     BOOST_CHECK_EQUAL(ret, REALSERVER_RECV);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, USE_BUFFER_SIZE);
-    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 0u);
+    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 18u);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer, recive_data_global.recive_buffer1);
 
     //メモリの内容をチェックする
@@ -7177,7 +7167,7 @@ void handle_realserver_recv_tcp_test() {
     send_status_temp.status = SEND_CONTINUE;
     send_status_temp.send_offset = 40;
     send_status_temp.send_end_size = 39;
-    send_status_temp.send_rest_size = 20;
+    send_status_temp.send_rest_size = 50;
     recive_data_global.send_status_list.push_back(send_status_temp);
     //未送信データを生成する
     memcpy(recive_data_global.recive_buffer + 40, "HTTP/1.1 200 OK\r\nContent-Length: 50\r\n\r\n", 39);
@@ -7244,16 +7234,16 @@ void handle_realserver_recv_tcp_test() {
     //未送信データを生成する
     recive_data_global.recive_buffer[89] = 'H';
 
-    memcpy(response.c_array(), "TTP/1.9 200 OK234567890123456789012345678901234567", REQUEST_BUFFER_SIZE);
+    memcpy(response.c_array(), "TTP/1.9 200 OK\r\n4567890123456789012345678901234567", REQUEST_BUFFER_SIZE);
     response_len = REQUEST_BUFFER_SIZE;
 
     ret = handle_realserver_recv(boost::this_thread::get_id(), rs_endpoint, response, response_len);
 
     BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 51u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 51u);
 
     cout << "[317]------------------------------------------" << endl;
     // unit_test[317] 送信状態が送信不可の場合
@@ -7408,14 +7398,14 @@ void handle_realserver_recv_tcp_test() {
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 2u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 52u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 57u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->status, SEND_NG);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_rest_size, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_possible_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 8u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 57u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 3u);
 
     cout << "[322]------------------------------------------" << endl;
     // unit_test[322] 送信状態が送信不可の場合
@@ -7442,7 +7432,7 @@ void handle_realserver_recv_tcp_test() {
 
     BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, USE_BUFFER_SIZE);
-    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 30u);
+    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 20u);
 
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
@@ -7476,7 +7466,7 @@ void handle_realserver_recv_tcp_test() {
 
     BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, USE_BUFFER_SIZE);
-    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 30u);
+    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 20u);
 
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
@@ -7513,15 +7503,15 @@ void handle_realserver_recv_tcp_test() {
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 2u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 52u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 57u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
 
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->status, SEND_NG);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_rest_size, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_possible_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 8u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 57u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 3u);
 
     cout << "[325]------------------------------------------" << endl;
     // unit_test[325] レスポンスデータ残サイズ = 0
@@ -7547,7 +7537,7 @@ void handle_realserver_recv_tcp_test() {
 
     BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, USE_BUFFER_SIZE);
-    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 30u);
+    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 20u);
 
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
@@ -7578,15 +7568,15 @@ void handle_realserver_recv_tcp_test() {
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 2u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 48u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 49u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
 
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->status, SEND_NG);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_rest_size, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_possible_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 48u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 2u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 49u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 1u);
 
     cout << "[327]------------------------------------------" << endl;
     // unit_test[327] レスポンスデータ残サイズ > 0
@@ -7664,7 +7654,7 @@ void handle_realserver_recv_tcp_test() {
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 50u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 50u);
 
     cout << "[331]------------------------------------------" << endl;
     // unit_test[331] レスポンスデータ残サイズ > 0
@@ -7684,7 +7674,7 @@ void handle_realserver_recv_tcp_test() {
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 50u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 50u);
 
     cout << "[332]------------------------------------------" << endl;
     // unit_test[332] レスポンスデータ残サイズ > 0
@@ -7706,10 +7696,10 @@ void handle_realserver_recv_tcp_test() {
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 38u);
 
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 38u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 12u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 0u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->status, SEND_NG);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 38u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 12u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_possible_size, 0u);
 
     cout << "[333]------------------------------------------" << endl;
     // unit_test[333] レスポンスデータ残サイズ > 0
@@ -7735,7 +7725,7 @@ void handle_realserver_recv_tcp_test() {
     // unit_test[334] レスポンスデータ残サイズ > 0
     // unit_test[334]  ●出力の送信状態リスト: 1:送信待 2:送信待
     recive_data_global.recive_buffer_max_size = USE_BUFFER_SIZE;
-    recive_data_global.recive_buffer_rest_size = USE_BUFFER_SIZE;
+    recive_data_global.recive_buffer_rest_size = 76;
     recive_data_global.recive_buffer = recive_data_global.recive_buffer1;
     recive_data_global.send_status_list.clear();
 
@@ -7747,7 +7737,7 @@ void handle_realserver_recv_tcp_test() {
     recive_data_global.send_status_list.push_back(send_status_temp);
 
     //未送信データ
-    memcpy(recive_data_global.recive_buffer, "HTTP/1.0 200 O", 12);
+    memcpy(recive_data_global.recive_buffer, "HTTP/1.0 200 O", 14);
 
     memcpy(response.c_array(), "K\r\nCookie: m=1\r\n\r\nHTTP/1.0 200 OK\r\nCookie: m=1\r\n\r\n", 50);
     response_len = 50;
@@ -7835,7 +7825,7 @@ void handle_realserver_recv_tcp_test() {
 
     ret = handle_realserver_recv(boost::this_thread::get_id(), rs_endpoint, response, response_len);
 
-    BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
+    BOOST_CHECK_EQUAL(ret, REALSERVER_RECV);
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
@@ -7857,7 +7847,7 @@ void handle_realserver_recv_tcp_test() {
 
     ret = handle_realserver_recv(boost::this_thread::get_id(), rs_endpoint, response, response_len);
 
-    BOOST_CHECK_EQUAL(ret, SORRYSERVER_CONNECT);
+    BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
 
     cout << "[339]------------------------------------------" << endl;
     // unit_test[339] 送信可能データなし
@@ -7871,7 +7861,7 @@ void handle_realserver_recv_tcp_test() {
 
     ret = handle_realserver_recv(boost::this_thread::get_id(), rs_endpoint, response, response_len);
 
-    BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
+    BOOST_CHECK_EQUAL(ret, REALSERVER_RECV);
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 0u);
@@ -9089,9 +9079,9 @@ void handle_sorryserver_recv_test() {
 
     BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 51u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 51u);
 
     cout << "[403]------------------------------------------" << endl;
     // unit_test[403] 送信状態が送信不可の場合
@@ -9246,14 +9236,14 @@ void handle_sorryserver_recv_test() {
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 2u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 52u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 57u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->status, SEND_NG);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_rest_size, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_possible_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 8u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 57u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 3u);
 
     cout << "[408]------------------------------------------" << endl;
     // unit_test[408] 送信状態が送信不可の場合
@@ -9280,7 +9270,7 @@ void handle_sorryserver_recv_test() {
 
     BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, USE_BUFFER_SIZE);
-    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 30u);
+    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 20u);
 
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
@@ -9314,7 +9304,7 @@ void handle_sorryserver_recv_test() {
 
     BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, USE_BUFFER_SIZE);
-    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 30u);
+    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 20u);
 
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
@@ -9351,15 +9341,15 @@ void handle_sorryserver_recv_test() {
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 2u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 52u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 57u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
 
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->status, SEND_NG);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_rest_size, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_possible_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 8u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 57u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 3u);
 
     cout << "[411]------------------------------------------" << endl;
     // unit_test[411] レスポンスデータ残サイズ = 0
@@ -9385,7 +9375,7 @@ void handle_sorryserver_recv_test() {
 
     BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
     BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_max_size, USE_BUFFER_SIZE);
-    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 30u);
+    BOOST_CHECK_EQUAL(recive_data_global.recive_buffer_rest_size, 20u);
 
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
@@ -9416,15 +9406,15 @@ void handle_sorryserver_recv_test() {
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 2u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 48u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 49u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
 
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->status, SEND_NG);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_rest_size, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_possible_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 48u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 2u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 49u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 1u);
 
     cout << "[413]------------------------------------------" << endl;
     // unit_test[413] レスポンスデータ残サイズ > 0
@@ -9502,7 +9492,7 @@ void handle_sorryserver_recv_test() {
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 50u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 50u);
 
     cout << "[417]------------------------------------------" << endl;
     // unit_test[417] レスポンスデータ残サイズ > 0
@@ -9522,7 +9512,7 @@ void handle_sorryserver_recv_test() {
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_OK);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 50u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 50u);
 
     cout << "[418]------------------------------------------" << endl;
     // unit_test[418] レスポンスデータ残サイズ > 0
@@ -9544,10 +9534,10 @@ void handle_sorryserver_recv_test() {
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 0u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 38u);
 
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 38u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->unsend_size, 12u);
-    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_possible_size, 0u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->status, SEND_NG);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_offset, 38u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->unsend_size, 12u);
+    BOOST_CHECK_EQUAL(recive_data_global.send_status_list.rbegin()->send_possible_size, 0u);
 
     cout << "[419]------------------------------------------" << endl;
     // unit_test[419] レスポンスデータ残サイズ > 0
@@ -9573,7 +9563,7 @@ void handle_sorryserver_recv_test() {
     // unit_test[420] レスポンスデータ残サイズ > 0
     // unit_test[420]  ●出力の送信状態リスト: 1:送信待 2:送信待
     recive_data_global.recive_buffer_max_size = USE_BUFFER_SIZE;
-    recive_data_global.recive_buffer_rest_size = USE_BUFFER_SIZE;
+    recive_data_global.recive_buffer_rest_size = 76;
     recive_data_global.recive_buffer = recive_data_global.recive_buffer1;
     recive_data_global.send_status_list.clear();
 
@@ -9585,7 +9575,7 @@ void handle_sorryserver_recv_test() {
     recive_data_global.send_status_list.push_back(send_status_temp);
 
     //未送信データ
-    memcpy(recive_data_global.recive_buffer, "HTTP/1.0 200 O", 12);
+    memcpy(recive_data_global.recive_buffer, "HTTP/1.0 200 O", 14);
 
     memcpy(response.c_array(), "K\r\nCookie: m=1\r\n\r\nHTTP/1.0 200 OK\r\nCookie: m=1\r\n\r\n", 50);
     response_len = 50;
@@ -9673,7 +9663,7 @@ void handle_sorryserver_recv_test() {
 
     ret = handle_sorryserver_recv(boost::this_thread::get_id(), sorry_endpoint, response, response_len);
 
-    BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_RECV);
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_offset, 0u);
@@ -9695,7 +9685,7 @@ void handle_sorryserver_recv_test() {
 
     ret = handle_sorryserver_recv(boost::this_thread::get_id(), sorry_endpoint, response, response_len);
 
-    BOOST_CHECK_EQUAL(ret, SORRYSERVER_CONNECT);
+    BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
 
     cout << "[425]------------------------------------------" << endl;
     // unit_test[425] 送信可能データなし
@@ -9709,7 +9699,7 @@ void handle_sorryserver_recv_test() {
 
     ret = handle_sorryserver_recv(boost::this_thread::get_id(), sorry_endpoint, response, response_len);
 
-    BOOST_CHECK_EQUAL(ret, CLIENT_CONNECTION_CHECK);
+    BOOST_CHECK_EQUAL(ret, SORRYSERVER_RECV);
     BOOST_REQUIRE_EQUAL(recive_data_global.send_status_list.size(), 1u);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->status, SEND_NG);
     BOOST_CHECK_EQUAL(recive_data_global.send_status_list.begin()->send_rest_size, 0u);
@@ -9786,7 +9776,7 @@ void handle_client_connection_check_test(){
 
     std::string chk1 = "bc";
     //送信可能データを先頭から送信可能データサイズ分、送信バッファにコピーする
-    BOOST_CHECK_EQUAL(sbf1.data(), chk1.c_str());
+    BOOST_CHECK_EQUAL(memcmp(sbf1.data(), chk1.c_str(), 2u), 0);
     //送信済データサイズに送信可能データサイズを設定する
     BOOST_CHECK_EQUAL(data1.recive_data_map[ep1].send_status_list.rbegin()->send_end_size, 2u);
     //送信可能データサイズに0を設定する
@@ -9822,7 +9812,7 @@ void handle_client_connection_check_test(){
 
     std::string chk2 = "bcdefg";
     //送信可能データを先頭から送信バッファサイズ分、送信バッファにコピーする
-    BOOST_CHECK_EQUAL(sbf2.data(), chk2.c_str());
+    BOOST_CHECK_EQUAL(memcmp(sbf2.data(), chk2.c_str(), 6u), 0);
 
     std::size_t sbfsize = sbf2.max_size();
     //送信済データサイズに送信バッファサイズを設定する
@@ -9864,7 +9854,7 @@ void handle_client_connection_check_test(){
     chk3 = (char*)malloc(sbf_size - 2);
     memset(chk3, 'a', sbf_size - 2);
     //送信可能データを先頭から送信可能データサイズ分、送信バッファにコピーする
-    BOOST_CHECK_EQUAL(sbf3.data(), chk3);
+    BOOST_CHECK_EQUAL(memcmp(sbf3.data(), chk3, sbf_size - 2), 0);
     //送信済データサイズに送信可能データサイズを設定する
     BOOST_CHECK_EQUAL(data3.recive_data_map[ep3].send_status_list.rbegin()->send_end_size, sbf_size);
     //送信可能データサイズに0を設定する
@@ -10171,7 +10161,6 @@ void handle_client_send_test(){
     this->session_thread_data_map.clear();
     this->session_thread_data_map.insert(std::pair<boost::thread::id, session_thread_data_sessionless*>(boost::this_thread::get_id(),&thread_data));
     event_status = this->handle_client_send(boost::this_thread::get_id());
-    send_status = thread_data.recive_data_map[endpoint].send_status_list.front().status;
 
     BOOST_CHECK_EQUAL(event_status, FINALIZE); //遷移先ステータスを設定する
 
@@ -10263,7 +10252,7 @@ void handle_client_send_test(){
     this->session_thread_data_map.clear();
     this->session_thread_data_map.insert(std::pair<boost::thread::id, session_thread_data_sessionless*>(boost::this_thread::get_id(),&thread_data));
     event_status = this->handle_client_send(boost::this_thread::get_id());
-    send_status = thread_data.recive_data_map[endpoint].send_status_list.front().status;
+    send_status = thread_data.recive_data_map[endpoint].send_status_list.back().status;
 
     BOOST_CHECK_EQUAL(event_status,  CLIENT_CONNECTION_CHECK); //遷移先ステータスを設定する
     BOOST_CHECK_EQUAL(send_status, SEND_OK);
@@ -10272,7 +10261,7 @@ void handle_client_send_test(){
     //unit_test[451] 送信状態->SEND_END,SEND_OK/送信可能データサイズ = 0/編集データリスト=0,送信データ残サイズ > 0/送信可能データなし/終了フラグがONの場合
     //unit_test[451] test data: 送信状態に送信待を設定,遷移先ステータスを設定する
     client_send_status.status = SEND_END;//送信状態->SEND_END
-    client_send_status1.send_rest_size = 0u; //送信データ残サイズ = 0
+    client_send_status1.send_rest_size = 1u; //送信データ残サイズ > 0
     client_send_status1.send_possible_size = 0u; //送信可能データサイズ = 0
     client_send_status1.status = SEND_OK;
     client_recive_data.send_status_list.clear();
@@ -10287,7 +10276,7 @@ void handle_client_send_test(){
     this->session_thread_data_map.clear();
     this->session_thread_data_map.insert(std::pair<boost::thread::id, session_thread_data_sessionless*>(boost::this_thread::get_id(),&thread_data));
     event_status = this->handle_client_send(boost::this_thread::get_id());
-    send_status = thread_data.recive_data_map[endpoint].send_status_list.front().status;
+    send_status = thread_data.recive_data_map[endpoint].send_status_list.back().status;
 
     BOOST_CHECK_EQUAL(event_status, CLIENT_DISCONNECT); //遷移先ステータスを設定する
     BOOST_CHECK_EQUAL(send_status, SEND_CONTINUE); //送信可能データサイズ = 0,送信データ残サイズ > 0,送信状態に送信待を設定する
@@ -10311,10 +10300,10 @@ void handle_client_send_test(){
     BOOST_CHECK_EQUAL(event_status, FINALIZE); //遷移先ステータスを設定する
 
     cout << "[453]------------------------------------------" << endl;
-    //unit_test[453] 送信状態->SEND_END,SEND_OK/送信可能データあり/終了フラグがONの場合
+    //unit_test[453] 送信状態->SEND_END,SEND_OK/終了フラグがONの場合
     //unit_test[453] test data: 送信状態に送信待を設定,遷移先ステータスを設定する
     client_send_status.status = SEND_END;// 送信状態->SEND_END
-    client_send_status.status = SEND_OK; //送信状態->SEND_OK
+    client_send_status1.status = SEND_OK; //送信状態->SEND_OK
     client_send_status1.send_possible_size = 0u;
     client_send_status1.send_rest_size = 0u;
     client_recive_data.send_status_list.clear();
@@ -10329,7 +10318,7 @@ void handle_client_send_test(){
     this->session_thread_data_map.clear();
     this->session_thread_data_map.insert(std::pair<boost::thread::id, session_thread_data_sessionless*>(boost::this_thread::get_id(),&thread_data));
     event_status = this->handle_client_send(boost::this_thread::get_id());
-    send_status = thread_data.recive_data_map[endpoint].send_status_list.front().status;
+    send_status = thread_data.recive_data_map[endpoint].send_status_list.back().status;
 
     BOOST_CHECK_EQUAL(event_status, CLIENT_DISCONNECT); //遷移先ステータスを設定する
     BOOST_CHECK_EQUAL(send_status, SEND_END); //送信状態に送信待を設定する
index 271e98f..74e469f 100644 (file)
@@ -1952,9 +1952,9 @@ void handle_client_recv_test() {
     // unit_test[123] test data:handle_client_recv() return REALSERVER_SELECT, data_size, data_begain_offset
     up_thread_data = new session_thread_data_sslid;
     up_thread_data->end_flag = END_FLAG_OFF;
-    up_thread_data->data_size = 0;
-    up_thread_data->data_begain_offset = 0;
-    up_thread_data->current_record_rest_size = 10;
+    up_thread_data->data_size = 0u;
+    up_thread_data->data_begain_offset = 0u;
+    up_thread_data->current_record_rest_size = 10u;
     recvlen = 3;
     for(int i=0; i<recvlen; i++)
        {
@@ -2246,7 +2246,7 @@ void handle_client_recv_test() {
        {
                recvbuffer[i] = 0x11;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array() + up_thread_data->data_begain_offset, up_thread_data->data_size);
        memcpy(mem_cmp_buffer + up_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = up_thread_data->data_size + recvlen;
@@ -2275,7 +2275,7 @@ void handle_client_recv_test() {
        {
                recvbuffer[i] = 0x12;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array() + up_thread_data->data_begain_offset, up_thread_data->data_size);
        memcpy(mem_cmp_buffer + up_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = up_thread_data->data_size + recvlen;
@@ -2306,7 +2306,7 @@ void handle_client_recv_test() {
        {
                recvbuffer[i] = 0x13;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array() + up_thread_data->data_begain_offset, up_thread_data->data_size);
        memcpy(mem_cmp_buffer + up_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = up_thread_data->data_size + recvlen;
@@ -2337,7 +2337,7 @@ void handle_client_recv_test() {
        {
                recvbuffer[i] = 0x13;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array() + up_thread_data->data_begain_offset, up_thread_data->data_size);
        memcpy(mem_cmp_buffer + up_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = up_thread_data->data_size + recvlen;
@@ -2367,7 +2367,7 @@ void handle_client_recv_test() {
        {
                recvbuffer[i] = 0x14;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array() + up_thread_data->data_begain_offset, up_thread_data->data_size);
        memcpy(mem_cmp_buffer + up_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = up_thread_data->data_size + recvlen;
@@ -2397,7 +2397,7 @@ void handle_client_recv_test() {
        {
                recvbuffer[i] = 0x15;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array() + up_thread_data->data_begain_offset, up_thread_data->data_size);
        memcpy(mem_cmp_buffer + up_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = up_thread_data->data_size + recvlen;
@@ -2439,7 +2439,7 @@ void handle_client_recv_test() {
        {
                recvbuffer[i] = 0x16;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array() + up_thread_data->data_begain_offset, up_thread_data->data_size);
        memcpy(mem_cmp_buffer + up_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = up_thread_data->data_size + recvlen;
@@ -2483,7 +2483,7 @@ void handle_client_recv_test() {
        {
                recvbuffer[i] = 0x17;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array() + up_thread_data->data_begain_offset, up_thread_data->data_size);
        memcpy(mem_cmp_buffer + up_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = up_thread_data->data_size + recvlen;
@@ -2521,7 +2521,7 @@ void handle_client_recv_test() {
        {
                recvbuffer[i] = 0x18;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array() + up_thread_data->data_begain_offset, up_thread_data->data_size);
        memcpy(mem_cmp_buffer + up_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = up_thread_data->data_size + recvlen;
@@ -2559,7 +2559,7 @@ void handle_client_recv_test() {
        {
                recvbuffer[i] = 0x19;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array() + up_thread_data->data_begain_offset, up_thread_data->data_size);
        memcpy(mem_cmp_buffer + up_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = up_thread_data->data_size + recvlen;
@@ -2589,7 +2589,7 @@ void handle_client_recv_test() {
             recvbuffer, recvlen);
     BOOST_CHECK_EQUAL(status, FINALIZE);
 
-    // unit_test[144] end_flag = END_FLAG_OFF, data_size+recvlen > MAX_BUFFER_SIZE +76
+    // unit_test[144] end_flag = END_FLAG_OFF, data_size+recvlen > MAX_SSLID_BUFFER_SIZE
     // unit_test[144] test data:handle_client_recv() return FINALIZE, end_flag=END_FLAG_ON
     up_thread_data = new session_thread_data_sslid;
     up_thread_data->end_flag = END_FLAG_OFF;
@@ -3103,7 +3103,7 @@ void handle_realserver_connect_test() {
        {
                up_thread_data->data_buffer[i] = 0x01;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
        mem_cmp_length = up_thread_data->data_size;
     this->session_thread_data_map[boost::this_thread::get_id()]
@@ -3134,7 +3134,7 @@ void handle_realserver_connect_test() {
        {
                up_thread_data->data_buffer[i] = 0x02;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
        mem_cmp_length = up_thread_data->data_size;
     this->session_thread_data_map[boost::this_thread::get_id()]
@@ -3165,7 +3165,7 @@ void handle_realserver_connect_test() {
        {
                up_thread_data->data_buffer[i] = 0x03;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
        mem_cmp_length = up_thread_data->data_size;
     this->session_thread_data_map[boost::this_thread::get_id()]
@@ -3196,7 +3196,7 @@ void handle_realserver_connect_test() {
        {
                up_thread_data->data_buffer[i] = 0x04;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
        mem_cmp_length = up_thread_data->data_size;
     this->session_thread_data_map[boost::this_thread::get_id()]
@@ -3227,7 +3227,7 @@ void handle_realserver_connect_test() {
        {
                up_thread_data->data_buffer[i] = 0x05;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
        mem_cmp_length = MAX_BUFFER_SIZE;
     this->session_thread_data_map[boost::this_thread::get_id()]
@@ -3258,7 +3258,7 @@ void handle_realserver_connect_test() {
        {
                up_thread_data->data_buffer[i] = 0x06;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
        mem_cmp_length = MAX_BUFFER_SIZE;
     this->session_thread_data_map[boost::this_thread::get_id()]
@@ -3289,7 +3289,7 @@ void handle_realserver_connect_test() {
        {
                up_thread_data->data_buffer[i] = 0x07;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
        mem_cmp_length = up_thread_data->current_record_rest_size;
     this->session_thread_data_map[boost::this_thread::get_id()]
@@ -3320,7 +3320,7 @@ void handle_realserver_connect_test() {
        {
                up_thread_data->data_buffer[i] = 0x08;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
        mem_cmp_length = up_thread_data->current_record_rest_size;
     this->session_thread_data_map[boost::this_thread::get_id()]
@@ -3351,7 +3351,7 @@ void handle_realserver_connect_test() {
        {
                up_thread_data->data_buffer[i] = 0x09;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
        mem_cmp_length = MAX_BUFFER_SIZE;
     this->session_thread_data_map[boost::this_thread::get_id()]
@@ -3425,10 +3425,23 @@ void handle_realserver_send_test() {
     session_thread_data_sslid* up_thread_data;
     EVENT_TAG status;
 
-    // unit_test[180] data_size = 0
+    // unit_test[180] data_size = 0,data_begain_offset = 0
+    // unit_test[180] test data:handle_realserver_send() return CLIENT_RECV
+    up_thread_data = new session_thread_data_sslid;
+    up_thread_data->data_size = 0u;
+    up_thread_data->data_begain_offset = 0u;
+    this->session_thread_data_map[boost::this_thread::get_id()]
+            = up_thread_data;
+    status = this->handle_realserver_send(boost::this_thread::get_id());
+    BOOST_CHECK_EQUAL(status, CLIENT_RECV);
+    delete up_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[180] data_size = 0,data_begain_offset >0
     // unit_test[180] test data:handle_realserver_send() return CLIENT_RECV
     up_thread_data = new session_thread_data_sslid;
     up_thread_data->data_size = 0u;
+    up_thread_data->data_begain_offset = 10u;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     status = this->handle_realserver_send(boost::this_thread::get_id());
@@ -3436,11 +3449,25 @@ void handle_realserver_send_test() {
     delete up_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[181] data_size > 0, current_record_rest_size > 0
+    // unit_test[181] data_size > 0, current_record_rest_size > 0,data_begain_offset=0
+    // unit_test[181] test data:handle_realserver_send() return REALSERVER_CONNECT
+    up_thread_data = new session_thread_data_sslid;
+    up_thread_data->data_size = 10u;
+    up_thread_data->current_record_rest_size = 10u;
+    up_thread_data->data_begain_offset = 0u;
+    this->session_thread_data_map[boost::this_thread::get_id()]
+            = up_thread_data;
+    status = this->handle_realserver_send(boost::this_thread::get_id());
+    BOOST_CHECK_EQUAL(status, REALSERVER_CONNECT);
+    delete up_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[181] data_size > 0, current_record_rest_size > 0,data_begain_offset>0
     // unit_test[181] test data:handle_realserver_send() return REALSERVER_CONNECT
     up_thread_data = new session_thread_data_sslid;
     up_thread_data->data_size = 10u;
     up_thread_data->current_record_rest_size = 10u;
+    up_thread_data->data_begain_offset = 10u;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     status = this->handle_realserver_send(boost::this_thread::get_id());
@@ -3448,13 +3475,14 @@ void handle_realserver_send_test() {
     delete up_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[182] data_size > 0, current_record_rest_size = 0, check_ssl_record_sendable() return -1 (異常)
+    // unit_test[182] data_size > 0, current_record_rest_size = 0, check_ssl_record_sendable() return -1 (異常),data_begain_offset=0
     // unit_test[182] test data:handle_realserver_send() return FINALIZE, end_flag = END_FLAG_ON
     up_thread_data = new session_thread_data_sslid;
     up_thread_data->data_size = 10u;
     up_thread_data->data_begain_offset = 0u;
     up_thread_data->current_record_rest_size = 0u;
     up_thread_data->data_buffer[0] = 0x00;
+    up_thread_data->data_begain_offset = 0u;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     status = this->handle_realserver_send(boost::this_thread::get_id());
@@ -3463,11 +3491,41 @@ void handle_realserver_send_test() {
     delete up_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[183] data_size > 0, current_record_rest_size = 0, check_ssl_record_sendable() return 1 (送信不可)
+    // unit_test[182] data_size > 0, current_record_rest_size = 0, check_ssl_record_sendable() return -1 (異常),data_begain_offset>0
+    // unit_test[182] test data:handle_realserver_send() return FINALIZE, end_flag = END_FLAG_ON
+    up_thread_data = new session_thread_data_sslid;
+    up_thread_data->data_size = 10u;
+    up_thread_data->data_begain_offset = 0u;
+    up_thread_data->current_record_rest_size = 0u;
+    up_thread_data->data_buffer[0] = 0x00;
+    up_thread_data->data_begain_offset =10u;
+    this->session_thread_data_map[boost::this_thread::get_id()]
+            = up_thread_data;
+    status = this->handle_realserver_send(boost::this_thread::get_id());
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->end_flag, END_FLAG_ON);
+    BOOST_CHECK_EQUAL(status, FINALIZE);
+    delete up_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[183] data_size > 0, current_record_rest_size = 0, check_ssl_record_sendable() return 1 (送信不可),data_begain_offset=0
+    // unit_test[183] test data:handle_realserver_send() return CLIENT_RECV
+    up_thread_data = new session_thread_data_sslid;
+    up_thread_data->data_size = 1u;
+    up_thread_data->current_record_rest_size = 0u;
+    up_thread_data->data_begain_offset = 0u;
+    this->session_thread_data_map[boost::this_thread::get_id()]
+            = up_thread_data;
+    status = this->handle_realserver_send(boost::this_thread::get_id());
+    BOOST_CHECK_EQUAL(status, CLIENT_RECV);
+    delete up_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[183] data_size > 0, current_record_rest_size = 0, check_ssl_record_sendable() return 1 (送信不可),data_begain_offset>0
     // unit_test[183] test data:handle_realserver_send() return CLIENT_RECV
     up_thread_data = new session_thread_data_sslid;
     up_thread_data->data_size = 1u;
     up_thread_data->current_record_rest_size = 0u;
+    up_thread_data->data_begain_offset = 10u;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     status = this->handle_realserver_send(boost::this_thread::get_id());
@@ -3475,7 +3533,7 @@ void handle_realserver_send_test() {
     delete up_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[184] data_size > 0, current_record_rest_size = 0, check_ssl_record_send() return 0 (送信可能)
+    // unit_test[184] data_size > 0, current_record_rest_size = 0, check_ssl_record_send() return 0 (送信可能),data_begain_offset =0
     // unit_test[184] is a hello message
     // unit_test[184] test data:handle_realserver_send() return REALSERVER_CONNECT,current_record_rest_size,
     // unit_test[184] hello_message_flag
@@ -3490,6 +3548,7 @@ void handle_realserver_send_test() {
     up_thread_data->data_buffer[5] = 0x01;
     up_thread_data->data_buffer[9] = 0x03;
     up_thread_data->data_buffer[10] = 0x01;
+    up_thread_data->data_begain_offset = 0u;
     up_thread_data->hello_message_flag = false;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
@@ -3500,7 +3559,33 @@ void handle_realserver_send_test() {
     delete up_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[185] data_size > 0, current_record_rest_size = 0, check_ssl_record_send() return 0 (送信可能)
+    // unit_test[184] data_size > 0, current_record_rest_size = 0, check_ssl_record_send() return 0 (送信可能),data_begain_offset > 0
+    // unit_test[184] is a hello message
+    // unit_test[184] test data:handle_realserver_send() return REALSERVER_CONNECT,current_record_rest_size,
+    // unit_test[184] hello_message_flag
+    up_thread_data = new session_thread_data_sslid;
+    up_thread_data->data_size = 76u;
+    up_thread_data->current_record_rest_size = 0u;
+    up_thread_data->data_buffer[10] = 0x16;
+    up_thread_data->data_buffer[11] = 0x03;
+    up_thread_data->data_buffer[12] = 0x01;
+    up_thread_data->data_buffer[13] = 0x00;
+    up_thread_data->data_buffer[14] = 0x9e;
+    up_thread_data->data_buffer[15] = 0x01;
+    up_thread_data->data_buffer[19] = 0x03;
+    up_thread_data->data_buffer[20] = 0x01;
+    up_thread_data->data_begain_offset = 10u;
+    up_thread_data->hello_message_flag = false;
+    this->session_thread_data_map[boost::this_thread::get_id()]
+            = up_thread_data;
+    status = this->handle_realserver_send(boost::this_thread::get_id());
+    BOOST_CHECK(this->session_thread_data_map[boost::this_thread::get_id()]->hello_message_flag);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 163u);
+    BOOST_CHECK_EQUAL(status, REALSERVER_CONNECT);
+    delete up_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[185] data_size > 0, current_record_rest_size = 0, check_ssl_record_send() return 0 (送信可能),data_begain_offset =0
     // unit_test[185] is not a hello message
     // unit_test[185] test data:handle_realserver_send(0 return REALSERVER_CONNECT,current_record_rest_size,
     // unit_test[185] hello_message_flag
@@ -3512,6 +3597,30 @@ void handle_realserver_send_test() {
     up_thread_data->data_buffer[2] = 0x01;
     up_thread_data->data_buffer[3] = 0x00;
     up_thread_data->data_buffer[4] = 0x9e;
+    up_thread_data->data_begain_offset = 0u;
+    up_thread_data->hello_message_flag = true;
+    this->session_thread_data_map[boost::this_thread::get_id()]
+            = up_thread_data;
+    status = this->handle_realserver_send(boost::this_thread::get_id());
+    BOOST_CHECK(!this->session_thread_data_map[boost::this_thread::get_id()]->hello_message_flag);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 163u);
+    BOOST_CHECK_EQUAL(status, REALSERVER_CONNECT);
+    delete up_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[185] data_size > 0, current_record_rest_size = 0, check_ssl_record_send() return 0 (送信可能),data_begain_offset > 0
+    // unit_test[185] is not a hello message
+    // unit_test[185] test data:handle_realserver_send(0 return REALSERVER_CONNECT,current_record_rest_size,
+    // unit_test[185] hello_message_flag
+    up_thread_data = new session_thread_data_sslid;
+    up_thread_data->data_size = 10u;
+    up_thread_data->current_record_rest_size = 0u;
+    up_thread_data->data_buffer[10] = 0x17;
+    up_thread_data->data_buffer[11] = 0x03;
+    up_thread_data->data_buffer[12] = 0x01;
+    up_thread_data->data_buffer[13] = 0x00;
+    up_thread_data->data_buffer[14] = 0x9e;
+    up_thread_data->data_begain_offset = 10u;
     up_thread_data->hello_message_flag = true;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
@@ -3562,7 +3671,7 @@ void handle_realserver_recv_tcp_test() {
        {
                recvbuffer[i] = 0x01;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, down_thread_data->data_buffer.c_array()+down_thread_data->data_begain_offset, down_thread_data->data_size);
        memcpy(mem_cmp_buffer+down_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = down_thread_data->data_size + recvlen;
@@ -3588,7 +3697,7 @@ void handle_realserver_recv_tcp_test() {
        {
                recvbuffer[i] = 0x02;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, down_thread_data->data_buffer.c_array()+down_thread_data->data_begain_offset, down_thread_data->data_size);
        memcpy(mem_cmp_buffer+down_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = down_thread_data->data_size + recvlen;
@@ -3625,7 +3734,7 @@ void handle_realserver_recv_tcp_test() {
        {
                recvbuffer[i] = 0x03;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, down_thread_data->data_buffer.c_array()+down_thread_data->data_begain_offset, down_thread_data->data_size);
        memcpy(mem_cmp_buffer+down_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = down_thread_data->data_size + recvlen;
@@ -3658,7 +3767,7 @@ void handle_realserver_recv_tcp_test() {
        {
                recvbuffer[i] = 0x04;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, down_thread_data->data_buffer.c_array()+down_thread_data->data_begain_offset, down_thread_data->data_size);
        memcpy(mem_cmp_buffer+down_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = down_thread_data->data_size + recvlen;
@@ -3685,7 +3794,7 @@ void handle_realserver_recv_tcp_test() {
        {
                recvbuffer[i] = 0x05;
        }
-       mem_cmp_buffer = new char[MAX_BUFFER_SIZE+76];
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
        memcpy(mem_cmp_buffer, down_thread_data->data_buffer.c_array()+down_thread_data->data_begain_offset, down_thread_data->data_size);
        memcpy(mem_cmp_buffer+down_thread_data->data_size, recvbuffer.c_array(), recvlen);
        mem_cmp_length = down_thread_data->data_size + recvlen;
@@ -3700,7 +3809,7 @@ void handle_realserver_recv_tcp_test() {
        delete[] mem_cmp_buffer;
     this->session_thread_data_map.clear();
 
-    // unit_test[192] data_size + recvlen > MAX_BUFFER_SIZE + 76
+    // unit_test[192] data_size + recvlen > MAX_SSLID_BUFFER_SIZE
     // unit_test[192] test data:handle_realserver_recv() return FINALIZE
     down_thread_data = new session_thread_data_sslid;
     down_thread_data->data_size = 76u + 1u;
@@ -3756,7 +3865,7 @@ void handle_client_connection_check_test() {
             sendbuffer, datalen);
     BOOST_CHECK_EQUAL(status, FINALIZE);
 
-    // unit_test[195] current_record_rest_size>0
+    // unit_test[195] current_record_rest_size>0,data_begain_offset = 0
     // unit_test[195] test data:handle_client_connection return CLIENT_SEND
     down_thread_data = new session_thread_data_sslid;
     down_thread_data->current_record_rest_size = 10u;
@@ -3772,7 +3881,24 @@ void handle_client_connection_check_test() {
     delete down_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[196] current_record_rest_size=0,hello_message_flag=true,data_size >= 76
+    // unit_test[195] current_record_rest_size>0,data_begain_offset >0
+    // unit_test[195] test data:handle_client_connection return CLIENT_SEND
+    down_thread_data = new session_thread_data_sslid;
+    down_thread_data->current_record_rest_size = 10u;
+    down_thread_data->data_size = 76u;
+    down_thread_data->data_begain_offset = 10u;
+    this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
+    status = this->handle_client_connection_check(boost::this_thread::get_id(),
+            sendbuffer, datalen);
+    BOOST_CHECK_EQUAL(status, CLIENT_SEND);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 66u);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 20u);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 0u);
+    delete down_thread_data;
+    this->session_thread_data_map.clear();
+
+
+    // unit_test[196] current_record_rest_size=0,hello_message_flag=true,data_size >= 76,data_begain_offset=0
     // unit_test[196] get_ssl_session_id return 0 (have session id)
     // unit_test[196] test data:handle_client_connection return CLIENT_SEND
     down_thread_data = new session_thread_data_sslid;
@@ -3780,7 +3906,7 @@ void handle_client_connection_check_test() {
     down_thread_data->hello_message_flag = true;
     down_thread_data->data_buffer[43] = 0x20;
     down_thread_data->data_size = 76u;
-    down_thread_data->data_begain_offset = 0;
+    down_thread_data->data_begain_offset = 0u;
     for(size_t i=44; i<down_thread_data->data_size; i++)
     {
        down_thread_data->data_buffer[i] = 0x01;
@@ -3807,7 +3933,43 @@ void handle_client_connection_check_test() {
     delete replication_data_processor;
     this->session_thread_data_map.clear();
 
-    // unit_test[197] current_record_rest_size=0,hello_message_flag=true,
+    // unit_test[196] current_record_rest_size=0,hello_message_flag=true,data_size >= 76,data_begain_offset>0
+    // unit_test[196] get_ssl_session_id return 0 (have session id)
+    // unit_test[196] test data:handle_client_connection return CLIENT_SEND
+    down_thread_data = new session_thread_data_sslid;
+    down_thread_data->current_record_rest_size = 0u;
+    down_thread_data->hello_message_flag = true;
+    down_thread_data->data_buffer[53] = 0x20;
+    down_thread_data->data_size = 86u;
+    down_thread_data->data_begain_offset = 10u;
+    for(size_t i=44; i<down_thread_data->data_size; i++)
+    {
+       down_thread_data->data_buffer[i] = 0x01;
+       }
+       session_id.assign(down_thread_data->data_buffer.c_array()+54,down_thread_data->data_buffer.c_array()+86);
+    down_thread_data->selected_realserver = rs_endpoint;
+    maxlist = 3;
+    this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
+    this->replication_data_processor = new sslid_replication_data_processor(maxlist, sslid_replication_area_begain,
+               sslid_replication_area_size, virtual_service_endpoint, ingetloglevel, inputLogFatal, inputLogError,
+               inputLogWarn, inputLogInfo, inputLogDebug);
+    this->session_data_processor = new sslid_session_data_processor_stub(
+            maxlist, timeout, this->replication_data_processor, stb_getloglevel,
+            stb_putLogFatal, stb_putLogError, stb_putLogWarn,
+            stb_putLogInfo, stb_putLogDebug);
+    status = this->handle_client_connection_check(boost::this_thread::get_id(),
+            sendbuffer, datalen);
+       BOOST_CHECK_EQUAL((dynamic_cast<sslid_session_data_processor_stub*>(this->session_data_processor))->get_session_endpoint_map()[session_id], rs_endpoint);
+    BOOST_CHECK_EQUAL(status, CLIENT_SEND);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 86u);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 10u);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 0u);
+    delete down_thread_data;
+    delete replication_data_processor;
+    this->session_thread_data_map.clear();
+
+
+    // unit_test[197] current_record_rest_size=0,hello_message_flag=true,data_begain_offset=0
     // unit_test[197] get_ssl_session_id return 1 (no session id)
     // unit_test[197] test data:handle_client_connection return CLIENT_SEND
     down_thread_data = new session_thread_data_sslid;
@@ -3826,28 +3988,32 @@ void handle_client_connection_check_test() {
     delete down_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[198] current_record_rest_size=0,hello_message_flag=true
-    // unit_test[198] get_ssl_session_id return -1 (error)
-    // unit_test[198] test data:handle_client_connection return FINALIZE
+    // unit_test[197] current_record_rest_size=0,hello_message_flag=true,data_begain_offset>0
+    // unit_test[197] get_ssl_session_id return 1 (no session id)
+    // unit_test[197] test data:handle_client_connection return CLIENT_SEND
     down_thread_data = new session_thread_data_sslid;
     down_thread_data->current_record_rest_size = 0u;
     down_thread_data->hello_message_flag = true;
-    down_thread_data->data_buffer[43] = 0x00;
-    down_thread_data->data_size = 0u;
-    down_thread_data->data_begain_offset = 0u;
+    down_thread_data->data_buffer[53] = 0x00;
+    down_thread_data->data_size = 86u;
+    down_thread_data->data_begain_offset = 10u;
     this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
     status = this->handle_client_connection_check(boost::this_thread::get_id(),
             sendbuffer, datalen);
-    BOOST_CHECK_EQUAL(status, FINALIZE);
+    BOOST_CHECK_EQUAL(status, CLIENT_SEND);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 86u);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 10u);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 0u);
     delete down_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[199] current_record_rest_size=0,hello_message_flag=false
-    // unit_test[199] test data:handle_client_connection return CLIENT_SEND
+    // unit_test[198] current_record_rest_size=0,hello_message_flag=false,data_begain_offset=0
+    // unit_test[198] test data:handle_client_connection return CLIENT_SEND
     down_thread_data = new session_thread_data_sslid;
     down_thread_data->current_record_rest_size = 0u;
     down_thread_data->hello_message_flag = false;
     down_thread_data->data_size = 76u;
+    down_thread_data->data_begain_offset = 0u;
     this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
     status = this->handle_client_connection_check(boost::this_thread::get_id(),
             sendbuffer, datalen);
@@ -3857,6 +4023,23 @@ void handle_client_connection_check_test() {
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 0u);
     delete down_thread_data;
     this->session_thread_data_map.clear();
+
+    // unit_test[198] current_record_rest_size=0,hello_message_flag=false,data_begain_offset>0
+    // unit_test[198] test data:handle_client_connection return CLIENT_SEND
+    down_thread_data = new session_thread_data_sslid;
+    down_thread_data->current_record_rest_size = 0u;
+    down_thread_data->hello_message_flag = false;
+    down_thread_data->data_size = 86u;
+    down_thread_data->data_begain_offset = 10u;
+    this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
+    status = this->handle_client_connection_check(boost::this_thread::get_id(),
+            sendbuffer, datalen);
+    BOOST_CHECK_EQUAL(status, CLIENT_SEND);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 86u);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 10u);
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 0u);
+    delete down_thread_data;
+    this->session_thread_data_map.clear();
 }
 
 //handle_client_select
@@ -3882,45 +4065,99 @@ void handle_client_send_test() {
     status = this->handle_client_send(boost::this_thread::get_id());
     BOOST_CHECK_EQUAL(status, FINALIZE);
 
-    // unit_test[202] data_size=0,end_flag=END_FLAG_ON
+    // unit_test[202] data_size=0,end_flag=END_FLAG_ON,data_begain_offset=0
+    // unit_test[202] test data:handle_client_send() return CLIENT_DISCONNECT
+    down_thread_data = new session_thread_data_sslid;
+    down_thread_data->data_size = 0u;
+    down_thread_data->end_flag = END_FLAG_ON;
+    down_thread_data->data_begain_offset = 0u;
+    this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
+    status = this->handle_client_send(boost::this_thread::get_id());
+    BOOST_CHECK_EQUAL(status, CLIENT_DISCONNECT);
+    delete down_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[202] data_size=0,end_flag=END_FLAG_ON,data_begain_offset>0
     // unit_test[202] test data:handle_client_send() return CLIENT_DISCONNECT
     down_thread_data = new session_thread_data_sslid;
-    down_thread_data->data_size = 0;
+    down_thread_data->data_size = 0u;
     down_thread_data->end_flag = END_FLAG_ON;
+    down_thread_data->data_begain_offset = 10u;
     this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
     status = this->handle_client_send(boost::this_thread::get_id());
     BOOST_CHECK_EQUAL(status, CLIENT_DISCONNECT);
     delete down_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[203] data_size=0,end_flag=END_FLAG_OFF
+    // unit_test[203] data_size=0,end_flag=END_FLAG_OFF,data_begain_offset = 0
+    // unit_test[203] test data:handle_client_send() return REALSERVER_RECV
+    down_thread_data = new session_thread_data_sslid;
+    down_thread_data->data_size = 0u;
+    down_thread_data->end_flag = END_FLAG_OFF;
+    down_thread_data->data_begain_offset = 0u;
+    this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
+    status = this->handle_client_send(boost::this_thread::get_id());
+    BOOST_CHECK_EQUAL(status, REALSERVER_RECV);
+    delete down_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[203] data_size=0,end_flag=END_FLAG_OFF,data_begain_offset > 0
     // unit_test[203] test data:handle_client_send() return REALSERVER_RECV
     down_thread_data = new session_thread_data_sslid;
-    down_thread_data->data_size = 0;
+    down_thread_data->data_size = 0u;
     down_thread_data->end_flag = END_FLAG_OFF;
+    down_thread_data->data_begain_offset = 10u;
     this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
     status = this->handle_client_send(boost::this_thread::get_id());
     BOOST_CHECK_EQUAL(status, REALSERVER_RECV);
     delete down_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[204] data_size>0,current_record_rest_size>0
+    // unit_test[204] data_size>0,current_record_rest_size>0,data_begain_offset=0
     // unit_test[204] test data:handle_client_send() return CLIENT_CONNECTION_CHECK
     down_thread_data = new session_thread_data_sslid;
-    down_thread_data->data_size = 10;
-    down_thread_data->current_record_rest_size = 8;
+    down_thread_data->data_size = 10u;
+    down_thread_data->current_record_rest_size = 8u;
+    down_thread_data->data_begain_offset = 0u;
+    this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
+    status = this->handle_client_send(boost::this_thread::get_id());
+    BOOST_CHECK_EQUAL(status, CLIENT_CONNECTION_CHECK);
+    delete down_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[204] data_size>0,current_record_rest_size>0,data_begain_offset=0,data_begain_offset>0
+    // unit_test[204] test data:handle_client_send() return CLIENT_CONNECTION_CHECK
+    down_thread_data = new session_thread_data_sslid;
+    down_thread_data->data_size = 10u;
+    down_thread_data->current_record_rest_size = 8u;
+    down_thread_data->data_begain_offset = 10u;
     this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
     status = this->handle_client_send(boost::this_thread::get_id());
     BOOST_CHECK_EQUAL(status, CLIENT_CONNECTION_CHECK);
     delete down_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[205] data_size>0,current_record_rest_size=0,check_ssl_record_sendable() return -1 (異常)
+    // unit_test[205] data_size>0,current_record_rest_size=0,check_ssl_record_sendable() return -1 (異常),data_begain_offset=0
     // unit_test[205] test data:end_flag == END_FLAG_ON,handle_client_send() return FINALIZE
     down_thread_data = new session_thread_data_sslid;
-    down_thread_data->data_size = 10;
-    down_thread_data->current_record_rest_size = 0;
-    down_thread_data->data_buffer[0] = 0x00;
+    down_thread_data->data_size = 10u;
+    down_thread_data->current_record_rest_size = 0u;
+    down_thread_data->data_buffer[10] = 0x00;
+    down_thread_data->data_begain_offset = 0u;
+    this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
+    status = this->handle_client_send(boost::this_thread::get_id());
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->end_flag, END_FLAG_ON);
+    BOOST_CHECK_EQUAL(status, FINALIZE);
+    delete down_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[205] data_size>0,current_record_rest_size=0,check_ssl_record_sendable() return -1 (異常),data_begain_offset>0
+    // unit_test[205] test data:end_flag == END_FLAG_ON,handle_client_send() return FINALIZE
+    down_thread_data = new session_thread_data_sslid;
+    down_thread_data->data_size = 10u;
+    down_thread_data->current_record_rest_size = 0u;
+    down_thread_data->data_buffer[10] = 0x00;
+    down_thread_data->data_begain_offset = 10u;
     this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
     status = this->handle_client_send(boost::this_thread::get_id());
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->end_flag, END_FLAG_ON);
@@ -3928,33 +4165,63 @@ void handle_client_send_test() {
     delete down_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[206] data_size>0,current_record_rest_size=0,check_ssl_record_sendable() return 1 (送信不可)
+    // unit_test[206] data_size>0,current_record_rest_size=0,check_ssl_record_sendable() return 1 (送信不可),data_begain_offset=0
     // unit_test[206] end_flag=END_FLAG_ON
     // unit_test[206] test data:handle_client_send() return CLIENT_DISCONNECT
     down_thread_data = new session_thread_data_sslid;
-    down_thread_data->data_size = 3;
-    down_thread_data->current_record_rest_size = 0;
+    down_thread_data->data_size = 3u;
+    down_thread_data->current_record_rest_size = 0u;
     down_thread_data->end_flag = END_FLAG_ON;
+    down_thread_data->data_begain_offset = 0u;
     this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
     status = this->handle_client_send(boost::this_thread::get_id());
     BOOST_CHECK_EQUAL(status, CLIENT_DISCONNECT);
     delete down_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[207] data_size>0,current_record_rest_size=0,check_ssl_record_sendable()return 1 (送信不可)
+    // unit_test[206] data_size>0,current_record_rest_size=0,check_ssl_record_sendable() return 1 (送信不可),data_begain_offset>0
+    // unit_test[206] end_flag=END_FLAG_ON
+    // unit_test[206] test data:handle_client_send() return CLIENT_DISCONNECT
+    down_thread_data = new session_thread_data_sslid;
+    down_thread_data->data_size = 3u;
+    down_thread_data->current_record_rest_size = 0u;
+    down_thread_data->end_flag = END_FLAG_ON;
+    down_thread_data->data_begain_offset = 10u;
+    this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
+    status = this->handle_client_send(boost::this_thread::get_id());
+    BOOST_CHECK_EQUAL(status, CLIENT_DISCONNECT);
+    delete down_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[207] data_size>0,current_record_rest_size=0,check_ssl_record_sendable()return 1 (送信不可),data_begain_offset=0
     // unit_test[207] end_flag=END_FLAG_OFF
     // unit_test[207] test data:handle_client_send() return REALSERVER_RECV
     down_thread_data = new session_thread_data_sslid;
-    down_thread_data->data_size = 3;
-    down_thread_data->current_record_rest_size = 0;
+    down_thread_data->data_size = 3u;
+    down_thread_data->current_record_rest_size = 0u;
     down_thread_data->end_flag = END_FLAG_OFF;
+    down_thread_data->data_begain_offset = 0u;
     this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
     status = this->handle_client_send(boost::this_thread::get_id());
     BOOST_CHECK_EQUAL(status, REALSERVER_RECV);
     delete down_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[208] data_size>=76,current_record_rest_size=0,check_ssl_record_sendable() return 0 (送信可能)
+    // unit_test[207] data_size>0,current_record_rest_size=0,check_ssl_record_sendable()return 1 (送信不可),data_begain_offset>0
+    // unit_test[207] end_flag=END_FLAG_OFF
+    // unit_test[207] test data:handle_client_send() return REALSERVER_RECV
+    down_thread_data = new session_thread_data_sslid;
+    down_thread_data->data_size = 3u;
+    down_thread_data->current_record_rest_size = 0u;
+    down_thread_data->end_flag = END_FLAG_OFF;
+    down_thread_data->data_begain_offset = 10u;
+    this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
+    status = this->handle_client_send(boost::this_thread::get_id());
+    BOOST_CHECK_EQUAL(status, REALSERVER_RECV);
+    delete down_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[208] data_size>=76,current_record_rest_size=0,check_ssl_record_sendable() return 0 (送信可能),data_begain_offset=0
     // unit_test[208] is hello message
     // unit_test[208] test data:current_record_rest_size == all_length,hello_message_flag == TRUE
     // unit_test[208] handle_client_send() return CLIENT_CONNECTION_CHECK
@@ -3969,6 +4236,31 @@ void handle_client_send_test() {
     down_thread_data->data_buffer[5] = 0x02;
     down_thread_data->data_buffer[9] = 0x03;
     down_thread_data->data_buffer[10] = 0x01;
+    down_thread_data->data_begain_offset = 0u;
+    this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
+    status = this->handle_client_send(boost::this_thread::get_id());
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 163u);
+    BOOST_CHECK(this->session_thread_data_map[boost::this_thread::get_id()]->hello_message_flag);
+    BOOST_CHECK_EQUAL(status, CLIENT_CONNECTION_CHECK);
+    delete down_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[208] data_size>=76,current_record_rest_size=0,check_ssl_record_sendable() return 0 (送信可能),data_begain_offset>0
+    // unit_test[208] is hello message
+    // unit_test[208] test data:current_record_rest_size == all_length,hello_message_flag == TRUE
+    // unit_test[208] handle_client_send() return CLIENT_CONNECTION_CHECK
+    down_thread_data = new session_thread_data_sslid;
+    down_thread_data->data_size = 86;
+    down_thread_data->current_record_rest_size = 0;
+    down_thread_data->data_buffer[10] = 0x16;
+    down_thread_data->data_buffer[11] = 0x03;
+    down_thread_data->data_buffer[12] = 0x01;
+    down_thread_data->data_buffer[13] = 0x00;
+    down_thread_data->data_buffer[14] = 0x9e;
+    down_thread_data->data_buffer[15] = 0x02;
+    down_thread_data->data_buffer[19] = 0x03;
+    down_thread_data->data_buffer[20] = 0x01;
+    down_thread_data->data_begain_offset = 10u;
     this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
     status = this->handle_client_send(boost::this_thread::get_id());
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 163u);
@@ -3977,7 +4269,7 @@ void handle_client_send_test() {
     delete down_thread_data;
     this->session_thread_data_map.clear();
 
-    // unit_test[209] data_size>=6,current_record_rest_size=0,check_ssl_record_sendable() return 0 (送信可能)
+    // unit_test[209] data_size>=6,current_record_rest_size=0,check_ssl_record_sendable() return 0 (送信可能),data_begain_offset=0
     // unit_test[209] is not hello message
     // unit_test[209] test data:current_record_rest_size == all_length,hello_message_flag == FALSE
     // unit_test[209] handle_client_send() return CLIENT_CONNECTION_CHECK
@@ -3989,6 +4281,28 @@ void handle_client_send_test() {
     down_thread_data->data_buffer[2] = 0x01;
     down_thread_data->data_buffer[3] = 0x00;
     down_thread_data->data_buffer[4] = 0x9e;
+    down_thread_data->data_begain_offset = 0u;
+    this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
+    status = this->handle_client_send(boost::this_thread::get_id());
+    BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 163u);
+    BOOST_CHECK(!this->session_thread_data_map[boost::this_thread::get_id()]->hello_message_flag);
+    BOOST_CHECK_EQUAL(status, CLIENT_CONNECTION_CHECK);
+    delete down_thread_data;
+    this->session_thread_data_map.clear();
+
+    // unit_test[209] data_size>=6,current_record_rest_size=0,check_ssl_record_sendable() return 0 (送信可能),data_begain_offset>0
+    // unit_test[209] is not hello message
+    // unit_test[209] test data:current_record_rest_size == all_length,hello_message_flag == FALSE
+    // unit_test[209] handle_client_send() return CLIENT_CONNECTION_CHECK
+    down_thread_data = new session_thread_data_sslid;
+    down_thread_data->data_size = 10;
+    down_thread_data->current_record_rest_size = 0;
+    down_thread_data->data_buffer[10] = 0x17;
+    down_thread_data->data_buffer[11] = 0x03;
+    down_thread_data->data_buffer[12] = 0x01;
+    down_thread_data->data_buffer[13] = 0x00;
+    down_thread_data->data_buffer[14] = 0x9e;
+    down_thread_data->data_begain_offset = 10u;
     this->session_thread_data_map[boost::this_thread::get_id()] = down_thread_data;
     status = this->handle_client_send(boost::this_thread::get_id());
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 163u);
@@ -4183,6 +4497,9 @@ void put_data_to_sendbuffer_test(){
     size_t datalen = 0u;
     session_thread_data_sslid* up_thread_data;
     int ret = 0;
+    int mem_cmp_result;
+    int mem_cmp_length;
+    char* mem_cmp_buffer;
 
     // unit_test[221] thread id is not in the map
     // unit_test[221] test data:put_data_to_sendbuffer() return -1
@@ -4197,16 +4514,26 @@ void put_data_to_sendbuffer_test(){
     up_thread_data->current_record_rest_size = 20u;
     up_thread_data->data_size = 10u;
     up_thread_data->data_begain_offset = 5u;
+    for(size_t i=up_thread_data->data_begain_offset; i<up_thread_data->data_begain_offset+up_thread_data->data_size; i++)
+    {
+       up_thread_data->data_buffer[i] = 0x01;
+       }
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
+       memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
+       mem_cmp_length = up_thread_data->data_size;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     ret = this->put_data_to_sendbuffer(boost::this_thread::get_id(),
             sendbuffer, datalen);
+       mem_cmp_result = memcmp(mem_cmp_buffer, sendbuffer.c_array(), mem_cmp_length);
+       BOOST_CHECK_EQUAL(mem_cmp_result, 0);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 0u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 10u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 0u);
     BOOST_CHECK_EQUAL(ret, 0);
     BOOST_CHECK_EQUAL(datalen, 10u);
     delete up_thread_data;
+    delete[] mem_cmp_buffer;
     this->session_thread_data_map.clear();
 
     // unit_test[223] current_record_rest_size>data_size, data_size=送信バッファサイズ
@@ -4217,16 +4544,26 @@ void put_data_to_sendbuffer_test(){
     up_thread_data->current_record_rest_size = static_cast<size_t>(MAX_BUFFER_SIZE) + 1u;
     up_thread_data->data_size = static_cast<size_t>(MAX_BUFFER_SIZE);
     up_thread_data->data_begain_offset = 5u;
+    for(size_t i=up_thread_data->data_begain_offset; i<up_thread_data->data_begain_offset+up_thread_data->data_size; i++)
+    {
+       up_thread_data->data_buffer[i] = 0x02;
+       }
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
+       memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
+       mem_cmp_length = up_thread_data->data_size;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     ret = this->put_data_to_sendbuffer(boost::this_thread::get_id(),
             sendbuffer, datalen);
+       mem_cmp_result = memcmp(mem_cmp_buffer, sendbuffer.c_array(), mem_cmp_length);
+       BOOST_CHECK_EQUAL(mem_cmp_result, 0);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 0u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 1u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 0u);
     BOOST_CHECK_EQUAL(ret, 0);
     BOOST_CHECK_EQUAL(datalen, static_cast<size_t>(MAX_BUFFER_SIZE));
     delete up_thread_data;
+    delete[] mem_cmp_buffer;
     this->session_thread_data_map.clear();
 
     // unit_test[234] current_record_rest_size=data_size, data_size<送信バッファサイズ
@@ -4237,16 +4574,26 @@ void put_data_to_sendbuffer_test(){
     up_thread_data->current_record_rest_size = 10u;
     up_thread_data->data_size = 10u;
     up_thread_data->data_begain_offset = 5u;
+    for(size_t i=up_thread_data->data_begain_offset; i<up_thread_data->data_begain_offset+up_thread_data->data_size; i++)
+    {
+       up_thread_data->data_buffer[i] = 0x03;
+       }
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
+       memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
+       mem_cmp_length = up_thread_data->data_size;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     ret = this->put_data_to_sendbuffer(boost::this_thread::get_id(),
             sendbuffer, datalen);
+       mem_cmp_result = memcmp(mem_cmp_buffer, sendbuffer.c_array(), mem_cmp_length);
+       BOOST_CHECK_EQUAL(mem_cmp_result, 0);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 0u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 0u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 0u);
     BOOST_CHECK_EQUAL(ret, 0);
     BOOST_CHECK_EQUAL(datalen, 10u);
     delete up_thread_data;
+    delete[] mem_cmp_buffer;
     this->session_thread_data_map.clear();
 
     // unit_test[235] current_record_rest_size=data_size, data_size=送信バッファサイズ
@@ -4257,16 +4604,26 @@ void put_data_to_sendbuffer_test(){
     up_thread_data->current_record_rest_size = static_cast<size_t>(MAX_BUFFER_SIZE);
     up_thread_data->data_size = static_cast<size_t>(MAX_BUFFER_SIZE);
     up_thread_data->data_begain_offset = 5u;
+    for(size_t i=up_thread_data->data_begain_offset; i<up_thread_data->data_begain_offset+up_thread_data->data_size; i++)
+    {
+       up_thread_data->data_buffer[i] = 0x04;
+       }
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
+       memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
+       mem_cmp_length = up_thread_data->data_size;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     ret = this->put_data_to_sendbuffer(boost::this_thread::get_id(),
             sendbuffer, datalen);
+       mem_cmp_result = memcmp(mem_cmp_buffer, sendbuffer.c_array(), mem_cmp_length);
+       BOOST_CHECK_EQUAL(mem_cmp_result, 0);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 0u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 0u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 0u);
     BOOST_CHECK_EQUAL(ret, 0);
     BOOST_CHECK_EQUAL(datalen, static_cast<size_t>(MAX_BUFFER_SIZE));
     delete up_thread_data;
+    delete[] mem_cmp_buffer;
     this->session_thread_data_map.clear();
 
     // unit_test[236] current_record_rest_size>data_size,data_size>送信バッファサイズ
@@ -4277,16 +4634,26 @@ void put_data_to_sendbuffer_test(){
     up_thread_data->current_record_rest_size = static_cast<size_t>(MAX_BUFFER_SIZE) + 10u;
     up_thread_data->data_size = static_cast<size_t>(MAX_BUFFER_SIZE) + 5u;
     up_thread_data->data_begain_offset = 10u;
+    for(size_t i=up_thread_data->data_begain_offset; i<up_thread_data->data_begain_offset+up_thread_data->data_size; i++)
+    {
+       up_thread_data->data_buffer[i] = 0x05;
+       }
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
+       memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
+       mem_cmp_length = MAX_BUFFER_SIZE;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     ret = this->put_data_to_sendbuffer(boost::this_thread::get_id(),
             sendbuffer, datalen);
+       mem_cmp_result = memcmp(mem_cmp_buffer, sendbuffer.c_array(), mem_cmp_length);
+       BOOST_CHECK_EQUAL(mem_cmp_result, 0);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 10u+static_cast<size_t>(MAX_BUFFER_SIZE));
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 10u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 5u);
     BOOST_CHECK_EQUAL(ret, 0);
     BOOST_CHECK_EQUAL(datalen, static_cast<size_t>(MAX_BUFFER_SIZE));
     delete up_thread_data;
+    delete[] mem_cmp_buffer;
     this->session_thread_data_map.clear();
 
     // unit_test[237] current_record_rest_size=data_size,data_size>送信バッファサイズ
@@ -4297,16 +4664,26 @@ void put_data_to_sendbuffer_test(){
     up_thread_data->current_record_rest_size = static_cast<size_t>(MAX_BUFFER_SIZE) + 10u;
     up_thread_data->data_size = static_cast<size_t>(MAX_BUFFER_SIZE) + 10u;
     up_thread_data->data_begain_offset = 10u;
+    for(size_t i=up_thread_data->data_begain_offset; i<up_thread_data->data_begain_offset+up_thread_data->data_size; i++)
+    {
+       up_thread_data->data_buffer[i] = 0x06;
+       }
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
+       memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
+       mem_cmp_length = MAX_BUFFER_SIZE;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     ret = this->put_data_to_sendbuffer(boost::this_thread::get_id(),
             sendbuffer, datalen);
+       mem_cmp_result = memcmp(mem_cmp_buffer, sendbuffer.c_array(), mem_cmp_length);
+       BOOST_CHECK_EQUAL(mem_cmp_result, 0);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 10u+static_cast<size_t>(MAX_BUFFER_SIZE));
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 10u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 10u);
     BOOST_CHECK_EQUAL(ret, 0);
     BOOST_CHECK_EQUAL(datalen, static_cast<size_t>(MAX_BUFFER_SIZE));
     delete up_thread_data;
+    delete[] mem_cmp_buffer;
     this->session_thread_data_map.clear();
 
     // unit_test[238] current_record_rest_size<data_size, current_record_rest_size<送信バッファサイズ
@@ -4317,16 +4694,26 @@ void put_data_to_sendbuffer_test(){
     up_thread_data->current_record_rest_size = 10u;
     up_thread_data->data_size = 20u;
     up_thread_data->data_begain_offset = 5u;
+    for(size_t i=up_thread_data->data_begain_offset; i<up_thread_data->data_begain_offset+up_thread_data->data_size; i++)
+    {
+       up_thread_data->data_buffer[i] = 0x07;
+       }
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
+       memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
+       mem_cmp_length = up_thread_data->current_record_rest_size;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     ret = this->put_data_to_sendbuffer(boost::this_thread::get_id(),
             sendbuffer, datalen);
+       mem_cmp_result = memcmp(mem_cmp_buffer, sendbuffer.c_array(), mem_cmp_length);
+       BOOST_CHECK_EQUAL(mem_cmp_result, 0);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 15u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 0u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 10u);
     BOOST_CHECK_EQUAL(ret, 0);
     BOOST_CHECK_EQUAL(datalen, 10u);
     delete up_thread_data;
+    delete[] mem_cmp_buffer;
     this->session_thread_data_map.clear();
 
     // unit_test[239] current_record_rest_size<data_size, current_record_rest_size=送信バッファサイズ
@@ -4337,16 +4724,26 @@ void put_data_to_sendbuffer_test(){
     up_thread_data->current_record_rest_size = static_cast<size_t>(MAX_BUFFER_SIZE);
     up_thread_data->data_size = static_cast<size_t>(MAX_BUFFER_SIZE) + 10u;
     up_thread_data->data_begain_offset = 5u;
+    for(size_t i=up_thread_data->data_begain_offset; i<up_thread_data->data_begain_offset+up_thread_data->data_size; i++)
+    {
+       up_thread_data->data_buffer[i] = 0x08;
+       }
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
+       memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
+       mem_cmp_length = up_thread_data->current_record_rest_size;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     ret = this->put_data_to_sendbuffer(boost::this_thread::get_id(),
             sendbuffer, datalen);
+       mem_cmp_result = memcmp(mem_cmp_buffer, sendbuffer.c_array(), mem_cmp_length);
+       BOOST_CHECK_EQUAL(mem_cmp_result, 0);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 5u+static_cast<size_t>(MAX_BUFFER_SIZE));
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 0u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 10u);
     BOOST_CHECK_EQUAL(ret, 0);
     BOOST_CHECK_EQUAL(datalen, static_cast<size_t>(MAX_BUFFER_SIZE));
     delete up_thread_data;
+    delete[] mem_cmp_buffer;
     this->session_thread_data_map.clear();
 
     // unit_test[240] current_record_rest_size<data_size,current_record_rest_size>送信バッファサイズ
@@ -4357,16 +4754,26 @@ void put_data_to_sendbuffer_test(){
     up_thread_data->current_record_rest_size = static_cast<size_t>(MAX_BUFFER_SIZE) + 10u;
     up_thread_data->data_size = static_cast<size_t>(MAX_BUFFER_SIZE) + 20u;
     up_thread_data->data_begain_offset = 5u;
+    for(size_t i=up_thread_data->data_begain_offset; i<up_thread_data->data_begain_offset+up_thread_data->data_size; i++)
+    {
+       up_thread_data->data_buffer[i] = 0x08;
+       }
+       mem_cmp_buffer = new char[MAX_SSLID_BUFFER_SIZE];
+       memcpy(mem_cmp_buffer, up_thread_data->data_buffer.c_array()+up_thread_data->data_begain_offset, up_thread_data->data_size);
+       mem_cmp_length = MAX_BUFFER_SIZE;
     this->session_thread_data_map[boost::this_thread::get_id()]
             = up_thread_data;
     ret = this->put_data_to_sendbuffer(boost::this_thread::get_id(),
             sendbuffer, datalen);
+       mem_cmp_result = memcmp(mem_cmp_buffer, sendbuffer.c_array(), mem_cmp_length);
+       BOOST_CHECK_EQUAL(mem_cmp_result, 0);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_begain_offset, 5u+static_cast<size_t>(MAX_BUFFER_SIZE));
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->current_record_rest_size, 10u);
     BOOST_CHECK_EQUAL(this->session_thread_data_map[boost::this_thread::get_id()]->data_size, 20u);
     BOOST_CHECK_EQUAL(ret, 0);
     BOOST_CHECK_EQUAL(datalen, static_cast<size_t>(MAX_BUFFER_SIZE));
     delete up_thread_data;
+    delete[] mem_cmp_buffer;
     this->session_thread_data_map.clear();
 }
 
index bec4543..9985a4e 100644 (file)
@@ -7,12 +7,10 @@ using namespace l7vs;
 
 class ssl_protocol_module_base_test_class: public ssl_protocol_module_base {
 public:
-       ssl_protocol_module_base_test_class() :
-               ssl_protocol_module_base("sslid") {
-
+       ssl_protocol_module_base_test_class() : ssl_protocol_module_base("sslid") {
        }
-       ~ssl_protocol_module_base_test_class() {
 
+       ~ssl_protocol_module_base_test_class() {
        }
 
        bool is_tcp() {
@@ -27,10 +25,10 @@ public:
        }
 
        void initialize(rs_list_itr_func_type inlist_begin,
-                       rs_list_itr_func_type inlist_end,
-                       rs_list_itr_next_func_type inlist_next,
-                       boost::function<void(void)> inlist_lock,
-                       boost::function<void(void)> inlist_unlock) {
+                                       rs_list_itr_func_type inlist_end,
+                                       rs_list_itr_next_func_type inlist_next,
+                                       boost::function<void(void)> inlist_lock,
+                                       boost::function<void(void)> inlist_unlock) {
        }
 
        void finalize() {
@@ -52,120 +50,151 @@ public:
                check_message_result result;
                return result;
        }
+
        check_message_result add_parameter(const std::vector<std::string>& args) {
                check_message_result result;
                return result;
        }
+
        void register_schedule(tcp_schedule_func_type inschedule) {
        }
-       void register_schedule(udp_schedule_func_type inschedule) {
 
+       void register_schedule(udp_schedule_func_type inschedule) {
        }
+
        EVENT_TAG handle_session_initialize(const boost::thread::id up_thread_id,
-                       const boost::thread::id down_thread_id,
-                       const boost::asio::ip::tcp::endpoint& client_endpoint_tcp,
-                       const boost::asio::ip::udp::endpoint& client_endpoint_udp) {
+                                                                               const boost::thread::id down_thread_id,
+                                                                               const boost::asio::ip::tcp::endpoint& client_endpoint_tcp,
+                                                                               const boost::asio::ip::udp::endpoint& client_endpoint_udp) {
                return STOP;
        }
+
        EVENT_TAG handle_session_finalize(const boost::thread::id up_thread_id,
-                       const boost::thread::id down_thread_id) {
+                                                                       const boost::thread::id down_thread_id) {
                return STOP;
        }
+
        EVENT_TAG handle_accept(const boost::thread::id thread_id) {
                return STOP;
        }
+
        EVENT_TAG handle_client_recv(const boost::thread::id thread_id,
-                       const boost::array<char, MAX_BUFFER_SIZE>& recvbuffer,
-                       const size_t recvlen) {
+                                                               const boost::array<char, MAX_BUFFER_SIZE>& recvbuffer,
+                                                               const size_t recvlen) {
                return STOP;
        }
+
        EVENT_TAG handle_realserver_select(const boost::thread::id thread_id,
-                       boost::asio::ip::tcp::endpoint& rs_endpoint) {
+                                                                       boost::asio::ip::tcp::endpoint& rs_endpoint) {
                return STOP;
        }
+
        EVENT_TAG handle_realserver_select(const boost::thread::id thread_id,
-                       boost::asio::ip::udp::endpoint& rs_endpoint, boost::array<char,
-                                       MAX_BUFFER_SIZE>& sendbuffer, size_t& datalen) {
+                                                                       boost::asio::ip::udp::endpoint& rs_endpoint,
+                                                                       boost::array<char,MAX_BUFFER_SIZE>& sendbuffer,
+                                                                       size_t& datalen) {
                return STOP;
        }
+
        EVENT_TAG handle_realserver_connect(const boost::thread::id thread_id,
-                       boost::array<char, MAX_BUFFER_SIZE>& sendbuffer, size_t& datalen) {
+                                                                               boost::array<char, MAX_BUFFER_SIZE>& sendbuffer,
+                                                                               size_t& datalen) {
                return STOP;
        }
-       EVENT_TAG handle_realserver_connection_fail(
-                       const boost::thread::id thread_id,
-                       const boost::asio::ip::tcp::endpoint& rs_endpoint) {
+
+       EVENT_TAG handle_realserver_connection_fail(const boost::thread::id thread_id,
+                                                                                               const boost::asio::ip::tcp::endpoint& rs_endpoint) {
                return STOP;
        }
+
        EVENT_TAG handle_realserver_send(const boost::thread::id thread_id) {
                return STOP;
        }
+
        EVENT_TAG handle_sorryserver_select(const boost::thread::id thread_id,
-                       boost::asio::ip::tcp::endpoint& sorry_endpoint) {
+                                                                               boost::asio::ip::tcp::endpoint& sorry_endpoint) {
                return STOP;
        }
+
        EVENT_TAG handle_sorryserver_connect(const boost::thread::id thread_id,
-                       boost::array<char, MAX_BUFFER_SIZE>& sendbuffer, size_t& datalen) {
+                                                                               boost::array<char, MAX_BUFFER_SIZE>& sendbuffer,
+                                                                               size_t& datalen) {
                return STOP;
        }
-       EVENT_TAG handle_sorryserver_connection_fail(
-                       const boost::thread::id thread_id,
-                       const boost::asio::ip::tcp::endpoint& sorry_endpoint) {
+
+       EVENT_TAG handle_sorryserver_connection_fail(const boost::thread::id thread_id,
+                                                                                               const boost::asio::ip::tcp::endpoint& sorry_endpoint) {
                return STOP;
        }
+
        EVENT_TAG handle_sorryserver_send(const boost::thread::id thread_id) {
                return STOP;
        }
+
        EVENT_TAG handle_realserver_recv(const boost::thread::id thread_id,
-                       const boost::asio::ip::tcp::endpoint& rs_endpoint,
-                       const boost::array<char, MAX_BUFFER_SIZE>& recvbuffer,
-                       const size_t recvlen) {
+                                                                       const boost::asio::ip::tcp::endpoint& rs_endpoint,
+                                                                       const boost::array<char, MAX_BUFFER_SIZE>& recvbuffer,
+                                                                       const size_t recvlen) {
                return STOP;
        }
+
        EVENT_TAG handle_realserver_recv(const boost::thread::id thread_id,
-                       const boost::asio::ip::udp::endpoint& rs_endpoint,
-                       const boost::array<char, MAX_BUFFER_SIZE>& recvbuffer,
-                       const size_t recvlen) {
+                                                                       const boost::asio::ip::udp::endpoint& rs_endpoint,
+                                                                       const boost::array<char, MAX_BUFFER_SIZE>& recvbuffer,
+                                                                       const size_t recvlen) {
                return STOP;
        }
+
        EVENT_TAG handle_sorryserver_recv(const boost::thread::id thread_id,
-                       const boost::asio::ip::tcp::endpoint& sorry_endpoint,
-                       const boost::array<char, MAX_BUFFER_SIZE>& recvbuffer,
-                       const size_t recvlen) {
+                                                                       const boost::asio::ip::tcp::endpoint& sorry_endpoint,
+                                                                       const boost::array<char, MAX_BUFFER_SIZE>& recvbuffer,
+                                                                       const size_t recvlen) {
                return STOP;
        }
+
        EVENT_TAG handle_response_send_inform(const boost::thread::id thread_id) {
                return STOP;
        }
+
        EVENT_TAG handle_client_connection_check(const boost::thread::id thread_id,
-                       boost::array<char, MAX_BUFFER_SIZE>& sendbuffer, size_t& datalen) {
+                                                                                       boost::array<char, MAX_BUFFER_SIZE>& sendbuffer,
+                                                                                       size_t& datalen) {
                return STOP;
        }
+
        EVENT_TAG handle_client_select(const boost::thread::id thread_id,
-                       boost::asio::ip::udp::endpoint& cl_endpoint, boost::array<char,
-                                       MAX_BUFFER_SIZE>& sendbuffer, size_t& datalen) {
+                                                               boost::asio::ip::udp::endpoint& cl_endpoint,
+                                                               boost::array<char,MAX_BUFFER_SIZE>& sendbuffer,
+                                                               size_t& datalen) {
                return STOP;
        }
+
        EVENT_TAG handle_client_send(const boost::thread::id thread_id) {
                return STOP;
        }
+
        EVENT_TAG handle_client_disconnect(const boost::thread::id thread_id) {
                return STOP;
        }
+
        EVENT_TAG handle_sorry_enable(const boost::thread::id thread_id) {
                return STOP;
        }
+
        EVENT_TAG handle_sorry_disable(const boost::thread::id thread_id) {
                return STOP;
        }
+
        EVENT_TAG handle_realserver_disconnect(const boost::thread::id thread_id,
                        const boost::asio::ip::tcp::endpoint& rs_endpoint) {
                return STOP;
        }
+
        EVENT_TAG handle_sorryserver_disconnect(const boost::thread::id thread_id,
                        const boost::asio::ip::tcp::endpoint& sorry_endpoint) {
                return STOP;
        }
+
        EVENT_TAG handle_realserver_close(const boost::thread::id thread_id,
                        const boost::asio::ip::udp::endpoint& rs_endpoint) {
                return STOP;
@@ -306,6 +335,46 @@ public:
                BOOST_CHECK_EQUAL(ret, 0);
                delete[] record_data;
 
+               // unit_test[11] condition: recv_length = 6, is_message_from_client = true, record_data is a ssl record(minimal size), but is not a hello message.
+               // unit_test[11] check: check_ssl_record_sendable() return 0 (送信可能)
+               recv_length = 6u;
+               record_data = new char[recv_length];
+               record_data[0] = 0x14;
+               record_data[1] = 0x03;
+               record_data[2] = 0x01;
+               record_data[3] = 0x00;
+               record_data[4] = 0x9e;
+               record_data[5] = 0x00;
+               all_length = 0u;
+               is_message_from_client = true;
+               is_hello_message = true;
+               ret = this->check_ssl_record_sendable(is_message_from_client,
+                               record_data, recv_length, all_length, is_hello_message);
+               BOOST_CHECK_EQUAL(all_length, 163u);
+               BOOST_CHECK(!is_hello_message);
+               BOOST_CHECK_EQUAL(ret, 0);
+               delete[] record_data;
+
+               // unit_test[11] condition: recv_length = 6, is_message_from_client = true, record_data is a ssl record(minimal size), but is not a hello message.
+               // unit_test[11] check: check_ssl_record_sendable() return 0 (送信可能)
+               recv_length = 6u;
+               record_data = new char[recv_length];
+               record_data[0] = 0x15;
+               record_data[1] = 0x03;
+               record_data[2] = 0x01;
+               record_data[3] = 0x00;
+               record_data[4] = 0x9e;
+               record_data[5] = 0x00;
+               all_length = 0u;
+               is_message_from_client = true;
+               is_hello_message = true;
+               ret = this->check_ssl_record_sendable(is_message_from_client,
+                               record_data, recv_length, all_length, is_hello_message);
+               BOOST_CHECK_EQUAL(all_length, 163u);
+               BOOST_CHECK(!is_hello_message);
+               BOOST_CHECK_EQUAL(ret, 0);
+               delete[] record_data;
+
                // unit_test[12] condition: recv_length = 6, is_message_from_client = false, record_data is a ssl record(minimal size), but is not a hello message.
                // unit_test[12] check: check_ssl_record_sendable() return 0 (送信可能)
                recv_length = 6u;
@@ -612,6 +681,7 @@ public:
                BOOST_CHECK_EQUAL(ret, 1);
                delete[] record_data;
 
+/*---------------------------------------------------------------------------------------*/
                // unit_test[29] condition:recv_length = HELLO_MSG_HEADER_LENGTH,is_message_from_client = true, record_data is ssl record data, but is a error hello message,
                // unit_test[29] check:check_ssl_record_sendable() return -1 (異常)
                recv_length = HELLO_MSG_HEADER_LENGTH;
@@ -624,6 +694,7 @@ public:
                record_data[5] = 0x01;
                record_data[9] = 0x00;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_hello_message = true;
                is_message_from_client = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -644,6 +715,7 @@ public:
                record_data[5] = 0x01;
                record_data[9] = 0x00;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_hello_message = true;
                is_message_from_client = false;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -664,6 +736,7 @@ public:
                record_data[5] = 0x01;
                record_data[9] = 0x00;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
                                record_data, recv_length, all_length, is_hello_message);
@@ -683,6 +756,7 @@ public:
                record_data[5] = 0x01;
                record_data[9] = 0x00;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_hello_message = true;
                is_message_from_client = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -703,6 +777,7 @@ public:
                record_data[5] = 0x01;
                record_data[9] = 0x00;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_hello_message = true;
                is_message_from_client = false;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -723,6 +798,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -743,6 +819,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -763,6 +840,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -783,6 +861,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -803,6 +882,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -823,6 +903,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -843,6 +924,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -863,6 +945,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -883,6 +966,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = false;
                all_length = 0u;
@@ -1059,6 +1143,7 @@ public:
                record_data[5] = 0x01;
                record_data[9] = 0x00;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_hello_message = true;
                is_message_from_client = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -1079,6 +1164,7 @@ public:
                record_data[5] = 0x01;
                record_data[9] = 0x00;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_hello_message = true;
                is_message_from_client = false;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -1099,6 +1185,7 @@ public:
                record_data[5] = 0x01;
                record_data[9] = 0x00;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -1119,6 +1206,7 @@ public:
                record_data[5] = 0x01;
                record_data[9] = 0x00;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -1139,6 +1227,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -1159,6 +1248,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -1179,6 +1269,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -1199,6 +1290,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -1219,6 +1311,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -1239,6 +1332,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -1259,6 +1353,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -1279,6 +1374,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = true;
                ret = this->check_ssl_record_sendable(is_message_from_client,
@@ -1299,6 +1395,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = false;
                all_length = 0u;
@@ -1321,6 +1418,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = false;
                all_length = 0u;
@@ -1343,6 +1441,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = false;
                all_length = 0u;
@@ -1365,6 +1464,7 @@ public:
                record_data[5] = 0x01; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = true;
                is_hello_message = false;
                all_length = 0u;
@@ -1387,6 +1487,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = false;
                all_length = 0u;
@@ -1409,6 +1510,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x01;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = false;
                all_length = 0u;
@@ -1431,6 +1533,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = false;
                all_length = 0u;
@@ -1453,6 +1556,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = false;
                all_length = 0u;
@@ -1475,6 +1579,7 @@ public:
                record_data[5] = 0x02; // client hello = 0x01, server hello = 0x02
                record_data[9] = 0x03;
                record_data[10] = 0x00;
+               record_data[43] = 0x20;
                is_message_from_client = false;
                is_hello_message = false;
                all_length = 0u;
@@ -1492,6 +1597,47 @@ public:
                                record_data, 0u, all_length, is_hello_message);
                BOOST_CHECK_EQUAL(ret, -1);
                delete[] record_data;
+
+               // unit_test[72] condition:recv_length=SESSION_ID_BEGAIN_OFFSET, record_data is ssl record data, but no session id
+               // uint_test[72] check:check_ssl_record_sendable() return 0 (送信可能)
+               recv_length = SESSION_ID_BEGAIN_OFFSET;
+               record_data = new char[SESSION_ID_BEGAIN_OFFSET];
+               record_data[0] = 0x16;
+               record_data[1] = 0x03;
+               record_data[2] = 0x01;
+               record_data[3] = 0x00;
+               record_data[4] = 0x27;
+               record_data[5] = 0x01;
+               record_data[43] = 0x00;
+               is_message_from_client = true;
+               is_hello_message = false;
+               ret = this->check_ssl_record_sendable(is_message_from_client,
+            record_data, recv_length, all_length, is_hello_message);
+        BOOST_CHECK_EQUAL(ret, 0);
+        BOOST_CHECK(is_hello_message);
+        BOOST_CHECK_EQUAL(all_length, 44u);
+        delete[] record_data;
+
+        // unit_test[73] condition:recv_length>SESSION_ID_BEGAIN_OFFSET, record_data is ssl record data, but no session id
+               // uint_test[73] check:check_ssl_record_sendable() return 0 (送信可能)
+               recv_length = SESSION_ID_BEGAIN_OFFSET+1;
+               record_data = new char[SESSION_ID_BEGAIN_OFFSET];
+               record_data[0] = 0x16;
+               record_data[1] = 0x03;
+               record_data[2] = 0x01;
+               record_data[3] = 0x00;
+               record_data[4] = 0x28;
+               record_data[5] = 0x01;
+               record_data[43] = 0x00;
+               is_message_from_client = true;
+               is_hello_message = false;
+               ret = this->check_ssl_record_sendable(is_message_from_client,
+            record_data, recv_length, all_length, is_hello_message);
+        BOOST_CHECK_EQUAL(ret, 0);
+        BOOST_CHECK(is_hello_message);
+        BOOST_CHECK_EQUAL(all_length, 45u);
+        delete[] record_data;
+
        }
 
 };
index 4ddcd50..7d35f97 100644 (file)
@@ -1,9 +1,3 @@
-/*
- * sslid_replication_data_processor_test.cpp
- *
- *  Created on: Jan 20, 2009
- *      Author: root
- */
 #include "sslid_to_be_test_file.h"
 
 using namespace boost::unit_test;
index c5a3e5b..c4e9756 100644 (file)
@@ -1,9 +1,3 @@
-/*
- * sslid_session_data_processor_test.cpp
- *
- *  Created on: Jan 20, 2009
- *      Author: root
- */
 #include "sslid_to_be_test_file.h"
 
 using namespace boost::unit_test;
index f53b63e..c4517bc 100644 (file)
@@ -1,10 +1,3 @@
-/*
- * sslid_to_be_test_file.h
- *
- *  Created on: Jan 20, 2009
- *      Author: root
- */
-
 #ifndef SSLID_TO_BE_TEST_FILE_H_
 #define SSLID_TO_BE_TEST_FILE_H_