OSDN Git Service

ソケットクラスソース修正
authoryamada <yamada@1ed66053-1c2d-0410-8867-f7571e6e31d3>
Thu, 10 Dec 2009 08:35:10 +0000 (08:35 +0000)
committeryamada <yamada@1ed66053-1c2d-0410-8867-f7571e6e31d3>
Thu, 10 Dec 2009 08:35:10 +0000 (08:35 +0000)
git-svn-id: http://10.144.169.20/repos/um/branches/l7vsd-3.x-ramiel@8938 1ed66053-1c2d-0410-8867-f7571e6e31d3

l7vsd/include/tcp_socket.h
l7vsd/include/tcp_ssl_socket.h
l7vsd/src/tcp_socket.cpp
l7vsd/src/tcp_ssl_socket.cpp

index 1296a4a..1ce8e2f 100644 (file)
@@ -40,19 +40,6 @@ namespace l7vs{
 //! @brief    this class is tcp session object use socket.
     class tcp_socket : private boost::noncopyable{
         public:
-/*
-            //! construcor
-            //! @param[in/out]    socket use io service object
-            //! @param[in]        set socket option info 
-            tcp_socket(boost::asio::io_service& io): my_socket(io), open_flag(false){
-                opt_info.nodelay_opt = false;
-                opt_info.cork_opt = false;
-                opt_info.quickack_opt = false;
-                if( unlikely( LOG_LV_DEBUG == Logger::getLogLevel( LOG_CAT_L7VSD_SESSION ) ) ){
-                    Logger::putLogDebug( LOG_CAT_L7VSD_SESSION, 1, "tcp_socket::tcp_socket", __FILE__, __LINE__ );
-                }
-            }
-*/
             //! construcor
             //! @param[in/out]    socket use io service object
             //! @param[in]        set socket option info 
index 4b9c7a5..43305e5 100644 (file)
@@ -43,24 +43,6 @@ namespace l7vs{
 //! @brief    this class is tcp session object use socket.
     class tcp_ssl_socket : private boost::noncopyable{
         public:
-/*
-            //! construcor
-            //! @param[in/out]    socket use io service object
-            //! @param[in]        set socket option info 
-            tcp_ssl_socket(boost::asio::io_service& io,
-                       boost::asio::ssl::context& context)
-                       :
-                       my_socket(io, context),
-                       open_flag(false)
-            {
-                opt_info.nodelay_opt = false;
-                opt_info.cork_opt = false;
-                opt_info.quickack_opt = false;
-                if( unlikely( LOG_LV_DEBUG == Logger::getLogLevel( LOG_CAT_L7VSD_SESSION ) ) ){
-                    Logger::putLogDebug( LOG_CAT_L7VSD_SESSION, 1, "tcp_ssl_socket::tcp_ssl_socket", __FILE__, __LINE__ );
-                }
-            }
-*/
             //! construcor
             //! @param[in/out]    socket use io service object
             //! @param[in]        set socket option info 
index bed5b22..e366ddc 100644 (file)
@@ -29,8 +29,8 @@
 namespace l7vs{
 
     //! connect socket
-    //! @param[in]        connect_endpoint is connection endpoint
-    //! @param[out]        ec is reference error code object
+    //! @param[in]      connect_endpoint is connection endpoint
+    //! @param[out]     ec is reference error code object
     //! @return         true is connect
     //! @return         false is connect failure 
     bool tcp_socket::connect(boost::asio::ip::tcp::endpoint connect_endpoint,
@@ -223,9 +223,6 @@ namespace l7vs{
                     int val = opt_info.quickack_val;
                     size_t len = sizeof(val);
                     boost::asio::detail::socket_ops::setsockopt(my_socket.native(),IPPROTO_TCP,TCP_QUICKACK,&val,len,ec);
-                    if (unlikely(!open_flag)) {
-                        ec.clear();
-                    }
                     if(unlikely(ec)){
                         //ERROR
                         std::stringstream buf;
@@ -238,13 +235,6 @@ namespace l7vs{
                 }
                 boost::this_thread::yield();
                 res_size = my_socket.read_some(buffers,ec);
-                if(unlikely(ec)){
-                    if (unlikely(!open_flag)) {
-                        res_size = 0;
-                        ec.clear();
-                    }
-                }
-
             }
         return res_size;
     }
index 364538b..5e5dc28 100644 (file)
@@ -41,57 +41,9 @@ namespace l7vs{
         rw_scoped_lock scope_lock(close_mutex);
 
         bool bres = false;
-        bool retryed = false;
-        boost::system::error_code ec;
-        while (true) {
-            my_socket.handshake(type, ec);
-            if (ec) {
-                if (ec == boost::asio::error::try_again) {
-                    if (!retryed) {
-                        retryed = true;
-                        // retry handshake (try_again[Resource temporarily unavailable])
-                        //----Debug log----------------------------------------------------------------------
-                        if (unlikely(LOG_LV_DEBUG == Logger::getLogLevel(LOG_CAT_L7VSD_SESSION))) {
-                            std::stringstream buf;
-                            buf << "Thread ID[";
-                            buf << boost::this_thread::get_id();
-                            buf << "] tcp_ssl_socket::handshake : retry handshake";
-                            Logger::putLogDebug(LOG_CAT_L7VSD_SESSION, 75, buf.str(), __FILE__, __LINE__);
-                        }
-                        //----Debug log----------------------------------------------------------------------
-                    }
-                } else {
-                    // handshake NG
-                    //ERROR
-                    Logger::putLogError(LOG_CAT_L7VSD_SESSION, 114, "ssl socket handshaking failed" , __FILE__, __LINE__);
-                    //----Debug log----------------------------------------------------------------------
-//                    if (unlikely(LOG_LV_DEBUG == Logger::getLogLevel(LOG_CAT_L7VSD_SESSION))) {
-                        std::stringstream buf;
-                        buf << "Thread ID[";
-                        buf << boost::this_thread::get_id();
-                        buf << "] tcp_ssl_socket::handshake [";
-                        buf << ec.message();
-                        buf << "]";
-                        Logger::putLogDebug(LOG_CAT_L7VSD_SESSION, 76, buf.str(), __FILE__, __LINE__);
-//                    }
-                    //----Debug log----------------------------------------------------------------------
-                    break;
-                }
-            } else {
-                // handshake OK
-                bres = true;
-                //----Debug log----------------------------------------------------------------------
-                if (unlikely(LOG_LV_DEBUG == Logger::getLogLevel(LOG_CAT_L7VSD_SESSION))) {
-                    std::stringstream buf;
-                    buf << "Thread ID[";
-                    buf << boost::this_thread::get_id();
-                    buf << "] tcp_ssl_socket::handshake : handshake OK";
-                    Logger::putLogDebug(LOG_CAT_L7VSD_SESSION, 77, buf.str(), __FILE__, __LINE__);
-                }
-                //----Debug log----------------------------------------------------------------------
-                break;
-            }
-            boost::this_thread::yield();
+        my_socket.handshake(boost::asio::ssl::stream_base::server, ec);
+        if( !ec ){
+            bres = true;
         }
 
         if (unlikely( LOG_LV_DEBUG == Logger::getLogLevel(LOG_CAT_L7VSD_SESSION))) {
@@ -230,35 +182,25 @@ namespace l7vs{
 
         rd_scoped_lock scope_lock(close_mutex);
         std::size_t res_size = 0;
-            if(unlikely(open_flag)){
-                //set TCP_QUICKACK
-                if(opt_info.quickack_opt){
-                    int val = opt_info.quickack_val;
-                    std::size_t len = sizeof(val);
-                    boost::asio::detail::socket_ops::setsockopt(my_socket.lowest_layer().native(),IPPROTO_TCP,TCP_QUICKACK,&val,len,ec);
-                    if (unlikely(!open_flag)) {
-                        ec.clear();
-                    }
-                    if(unlikely(ec)){
-                        //ERROR
-                        std::stringstream buf;
-                        buf << "Thread ID[";
-                        buf << boost::this_thread::get_id();
-                        buf << "] socket option(TCP_QUICKACK) set failed : ";
-                        buf << ec.message();
-                        Logger::putLogError( LOG_CAT_L7VSD_SESSION, 109, buf.str() , __FILE__, __LINE__ );
-                    }
-                }
-                boost::this_thread::yield();
-                res_size = my_socket.read_some(buffers,ec);
+        if(unlikely(open_flag)){
+            //set TCP_QUICKACK
+            if(opt_info.quickack_opt){
+                int val = opt_info.quickack_val;
+                std::size_t len = sizeof(val);
+                boost::asio::detail::socket_ops::setsockopt(my_socket.lowest_layer().native(),IPPROTO_TCP,TCP_QUICKACK,&val,len,ec);
                 if(unlikely(ec)){
-                    if (unlikely(!open_flag)) {
-                        res_size = 0;
-                        ec.clear();
-                    }
+                    //ERROR
+                    std::stringstream buf;
+                    buf << "Thread ID[";
+                    buf << boost::this_thread::get_id();
+                    buf << "] socket option(TCP_QUICKACK) set failed : ";
+                    buf << ec.message();
+                    Logger::putLogError( LOG_CAT_L7VSD_SESSION, 109, buf.str() , __FILE__, __LINE__ );
                 }
-
             }
+            boost::this_thread::yield();
+            res_size = my_socket.read_some(buffers,ec);
+        }
         return res_size;
     }