From 14e80a4ff1c3251df8a0ba31abec6a9bd9a8e77b Mon Sep 17 00:00:00 2001 From: Peter Thorson Date: Fri, 3 May 2013 08:33:43 -0500 Subject: [PATCH] detab --- websocketpp/transport/asio/security/none.hpp | 178 ++++++------ websocketpp/transport/asio/security/tls.hpp | 290 +++++++++---------- 2 files changed, 234 insertions(+), 234 deletions(-) diff --git a/websocketpp/transport/asio/security/none.hpp b/websocketpp/transport/asio/security/none.hpp index 6ac41200aa..47edbb1246 100644 --- a/websocketpp/transport/asio/security/none.hpp +++ b/websocketpp/transport/asio/security/none.hpp @@ -51,28 +51,28 @@ typedef lib::function class connection { public: /// Type of this connection socket component - typedef connection type; + typedef connection type; /// Type of a shared pointer to this connection socket component typedef lib::shared_ptr ptr; /// Type of a pointer to the ASIO io_service being used - typedef boost::asio::io_service* io_service_ptr; + typedef boost::asio::io_service* io_service_ptr; /// Type of a shared pointer to the socket being used. typedef lib::shared_ptr socket_ptr; - - explicit connection() : m_state(UNINITIALIZED) { - //std::cout << "transport::asio::basic_socket::connection constructor" + + explicit connection() : m_state(UNINITIALIZED) { + //std::cout << "transport::asio::basic_socket::connection constructor" // << std::endl; - } - + } + /// Check whether or not this connection is secure /** * @return Wether or not this connection is secure */ - bool is_secure() const { - return false; - } - + bool is_secure() const { + return false; + } + /// Set the socket initialization handler /** * The socket initialization handler is called after the socket object is @@ -85,87 +85,87 @@ public: m_socket_init_handler = h; } - /// Retrieve a pointer to the underlying socket - /** - * This is used internally. It can also be used to set socket options, etc - */ + /// Retrieve a pointer to the underlying socket + /** + * This is used internally. It can also be used to set socket options, etc + */ boost::asio::ip::tcp::socket& get_socket() { - return *m_socket; + return *m_socket; } /// Retrieve a pointer to the underlying socket - /** - * This is used internally. It can also be used to set socket options, etc - */ + /** + * This is used internally. It can also be used to set socket options, etc + */ boost::asio::ip::tcp::socket& get_raw_socket() { - return *m_socket; + return *m_socket; } /// Get the remote endpoint address - /** - * The iostream transport has no information about the ultimate remote - * endpoint. It will return the string "iostream transport". To indicate - * this. - * - * TODO: allow user settable remote endpoint addresses if this seems useful - * - * @return A string identifying the address of the remote endpoint - */ - std::string get_remote_endpoint(lib::error_code &ec) const { - std::stringstream s; - - boost::system::error_code bec; - boost::asio::ip::tcp::endpoint ep = m_socket->remote_endpoint(bec); - - if (bec) { - ec = error::make_error_code(error::pass_through); - s << "Error getting remote endpoint: " << bec - << " (" << bec.message() << ")"; - return s.str(); - } else { - ec = lib::error_code(); - s << ep; - return s.str(); - } - } -protected: - /// Perform one time initializations - /** - * init_asio is called once immediately after construction to initialize - * boost::asio components to the io_service - * - * @param service A pointer to the endpoint's io_service - * @param strand A shared pointer to the connection's asio strand - * @param is_server Whether or not the endpoint is a server or not. - */ - lib::error_code init_asio (io_service_ptr service, bool is_server) { - if (m_state != UNINITIALIZED) { - return socket::make_error(socket::error::invalid_state); - } - - m_socket.reset(new boost::asio::ip::tcp::socket(*service)); - - m_state = READY; - - return lib::error_code(); + /** + * The iostream transport has no information about the ultimate remote + * endpoint. It will return the string "iostream transport". To indicate + * this. + * + * TODO: allow user settable remote endpoint addresses if this seems useful + * + * @return A string identifying the address of the remote endpoint + */ + std::string get_remote_endpoint(lib::error_code &ec) const { + std::stringstream s; + + boost::system::error_code bec; + boost::asio::ip::tcp::endpoint ep = m_socket->remote_endpoint(bec); + + if (bec) { + ec = error::make_error_code(error::pass_through); + s << "Error getting remote endpoint: " << bec + << " (" << bec.message() << ")"; + return s.str(); + } else { + ec = lib::error_code(); + s << ep; + return s.str(); + } } - - /// Initialize security policy for reading - void init(init_handler callback) { - if (m_state != READY) { - callback(socket::make_error(socket::error::invalid_state)); - return; - } - +protected: + /// Perform one time initializations + /** + * init_asio is called once immediately after construction to initialize + * boost::asio components to the io_service + * + * @param service A pointer to the endpoint's io_service + * @param strand A shared pointer to the connection's asio strand + * @param is_server Whether or not the endpoint is a server or not. + */ + lib::error_code init_asio (io_service_ptr service, bool is_server) { + if (m_state != UNINITIALIZED) { + return socket::make_error(socket::error::invalid_state); + } + + m_socket.reset(new boost::asio::ip::tcp::socket(*service)); + + m_state = READY; + + return lib::error_code(); + } + + /// Initialize security policy for reading + void init(init_handler callback) { + if (m_state != READY) { + callback(socket::make_error(socket::error::invalid_state)); + return; + } + if (m_socket_init_handler) { m_socket_init_handler(m_hdl,*m_socket); } - - m_state = READING; - - callback(lib::error_code()); - } - + + m_state = READING; + + callback(lib::error_code()); + } + /// Sets the connection handle /** * The connection handle is passed to any handlers to identify the @@ -184,14 +184,14 @@ protected: // TODO: handle errors } private: - enum state { - UNINITIALIZED = 0, - READY = 1, - READING = 2 - }; - - socket_ptr m_socket; - state m_state; + enum state { + UNINITIALIZED = 0, + READY = 1, + READING = 2 + }; + + socket_ptr m_socket; + state m_state; connection_hdl m_hdl; socket_init_handler m_socket_init_handler; @@ -213,7 +213,7 @@ public: /// component. typedef socket_con_type::ptr socket_con_ptr; - explicit endpoint() {} + explicit endpoint() {} /// Checks whether the endpoint creates secure connections /** diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp index cd0e767434..c15d866b39 100644 --- a/websocketpp/transport/asio/security/tls.hpp +++ b/websocketpp/transport/asio/security/tls.hpp @@ -58,51 +58,51 @@ typedef lib::function(connection_hdl) class connection { public: /// Type of this connection socket component - typedef connection type; - /// Type of a shared pointer to this connection socket component + typedef connection type; + /// Type of a shared pointer to this connection socket component typedef lib::shared_ptr ptr; /// Type of the ASIO socket being used - typedef boost::asio::ssl::stream socket_type; + typedef boost::asio::ssl::stream socket_type; /// Type of a shared pointer to the ASIO socket being used typedef lib::shared_ptr socket_ptr; /// Type of a pointer to the ASIO io_service being used - typedef boost::asio::io_service* io_service_ptr; + typedef boost::asio::io_service* io_service_ptr; /// Type of a shared pointer to the ASIO TLS context being used - typedef lib::shared_ptr context_ptr; + typedef lib::shared_ptr context_ptr; /// Type of a shared pointer to the ASIO timer being used - typedef lib::shared_ptr timer_ptr; - - typedef boost::system::error_code boost_error; - - explicit connection() { - //std::cout << "transport::asio::tls_socket::connection constructor" + typedef lib::shared_ptr timer_ptr; + + typedef boost::system::error_code boost_error; + + explicit connection() { + //std::cout << "transport::asio::tls_socket::connection constructor" // << std::endl; - } - + } + /// Check whether or not this connection is secure /** * @return Wether or not this connection is secure */ - bool is_secure() const { - return true; - } - - /// Retrieve a pointer to the underlying socket - /** - * This is used internally. It can also be used to set socket options, etc - */ - socket_type::lowest_layer_type& get_raw_socket() { - return m_socket->lowest_layer(); - } - - /// Retrieve a pointer to the wrapped socket - /** - * This is used internally. - */ - socket_type& get_socket() { - return *m_socket; - } + bool is_secure() const { + return true; + } + + /// Retrieve a pointer to the underlying socket + /** + * This is used internally. It can also be used to set socket options, etc + */ + socket_type::lowest_layer_type& get_raw_socket() { + return m_socket->lowest_layer(); + } + + /// Retrieve a pointer to the wrapped socket + /** + * This is used internally. + */ + socket_type& get_socket() { + return *m_socket; + } /// Set the socket initialization handler /** @@ -130,75 +130,75 @@ public: } /// Get the remote endpoint address - /** - * The iostream transport has no information about the ultimate remote - * endpoint. It will return the string "iostream transport". To indicate - * this. - * - * TODO: allow user settable remote endpoint addresses if this seems useful - * - * @return A string identifying the address of the remote endpoint - */ - std::string get_remote_endpoint(lib::error_code &ec) const { - std::stringstream s; - - boost::system::error_code bec; - boost::asio::ip::tcp::endpoint ep = m_socket->lowest_layer().remote_endpoint(bec); - - if (bec) { - ec = error::make_error_code(error::pass_through); - s << "Error getting remote endpoint: " << bec - << " (" << bec.message() << ")"; - return s.str(); - } else { - ec = lib::error_code(); - s << ep; - return s.str(); - } - } + /** + * The iostream transport has no information about the ultimate remote + * endpoint. It will return the string "iostream transport". To indicate + * this. + * + * TODO: allow user settable remote endpoint addresses if this seems useful + * + * @return A string identifying the address of the remote endpoint + */ + std::string get_remote_endpoint(lib::error_code &ec) const { + std::stringstream s; + + boost::system::error_code bec; + boost::asio::ip::tcp::endpoint ep = m_socket->lowest_layer().remote_endpoint(bec); + + if (bec) { + ec = error::make_error_code(error::pass_through); + s << "Error getting remote endpoint: " << bec + << " (" << bec.message() << ")"; + return s.str(); + } else { + ec = lib::error_code(); + s << ep; + return s.str(); + } + } protected: - /// Perform one time initializations - /** - * init_asio is called once immediately after construction to initialize - * boost::asio components to the io_service - * - * @param service A pointer to the endpoint's io_service - * @param strand A shared pointer to the connection's asio strand - * @param is_server Whether or not the endpoint is a server or not. - */ + /// Perform one time initializations + /** + * init_asio is called once immediately after construction to initialize + * boost::asio components to the io_service + * + * @param service A pointer to the endpoint's io_service + * @param strand A shared pointer to the connection's asio strand + * @param is_server Whether or not the endpoint is a server or not. + */ lib::error_code init_asio (io_service_ptr service, bool is_server) { if (!m_tls_init_handler) { - return socket::make_error(socket::error::missing_tls_init_handler); + return socket::make_error(socket::error::missing_tls_init_handler); } m_context = m_tls_init_handler(m_hdl); - - if (!m_context) { - return socket::make_error(socket::error::invalid_tls_context); - } - - m_socket.reset(new socket_type(*service,*m_context)); - - m_timer.reset(new boost::asio::deadline_timer( - *service, - boost::posix_time::seconds(0)) - ); - - m_io_service = service; - m_is_server = is_server; - - return lib::error_code(); + + if (!m_context) { + return socket::make_error(socket::error::invalid_tls_context); + } + + m_socket.reset(new socket_type(*service,*m_context)); + + m_timer.reset(new boost::asio::deadline_timer( + *service, + boost::posix_time::seconds(0)) + ); + + m_io_service = service; + m_is_server = is_server; + + return lib::error_code(); } - - /// Initialize security policy for reading - void init(init_handler callback) { - if (m_socket_init_handler) { + + /// Initialize security policy for reading + void init(init_handler callback) { + if (m_socket_init_handler) { m_socket_init_handler(m_hdl,get_raw_socket()); } - // register timeout - m_timer->expires_from_now(boost::posix_time::milliseconds(5000)); - // TEMP - m_timer->async_wait( + // register timeout + m_timer->expires_from_now(boost::posix_time::milliseconds(5000)); + // TEMP + m_timer->async_wait( lib::bind( &type::handle_timeout, this, @@ -206,19 +206,19 @@ protected: lib::placeholders::_1 ) ); - - // TLS handshake - m_socket->async_handshake( - get_handshake_type(), - lib::bind( - &type::handle_init, - this, - callback, - lib::placeholders::_1 - ) - ); - } - + + // TLS handshake + m_socket->async_handshake( + get_handshake_type(), + lib::bind( + &type::handle_init, + this, + callback, + lib::placeholders::_1 + ) + ); + } + /// Sets the connection handle /** * The connection handle is passed to any handlers to identify the @@ -230,39 +230,39 @@ protected: m_hdl = hdl; } - void handle_timeout(init_handler callback, const - boost::system::error_code& error) - { - if (error) { - if (error.value() == boost::asio::error::operation_aborted) { - // The timer was cancelled because the handshake succeeded. - return; - } - - // Some other ASIO error, pass it through - // TODO: make this error pass through better - callback(socket::make_error(socket::error::pass_through)); - return; - } - - callback(socket::make_error(socket::error::tls_handshake_timeout)); - } - - void handle_init(init_handler callback, const - boost::system::error_code& error) - { - /// stop waiting for our handshake timer. - m_timer->cancel(); - - if (error) { - // TODO: make this error pass through better - callback(socket::make_error(socket::error::pass_through)); - return; - } - - callback(lib::error_code()); - } - + void handle_timeout(init_handler callback, const + boost::system::error_code& error) + { + if (error) { + if (error.value() == boost::asio::error::operation_aborted) { + // The timer was cancelled because the handshake succeeded. + return; + } + + // Some other ASIO error, pass it through + // TODO: make this error pass through better + callback(socket::make_error(socket::error::pass_through)); + return; + } + + callback(socket::make_error(socket::error::tls_handshake_timeout)); + } + + void handle_init(init_handler callback, const + boost::system::error_code& error) + { + /// stop waiting for our handshake timer. + m_timer->cancel(); + + if (error) { + // TODO: make this error pass through better + callback(socket::make_error(socket::error::pass_through)); + return; + } + + callback(lib::error_code()); + } + void shutdown() { boost::system::error_code ec; m_socket->shutdown(ec); @@ -270,19 +270,19 @@ protected: // TODO: error handling } private: - socket_type::handshake_type get_handshake_type() { + socket_type::handshake_type get_handshake_type() { if (m_is_server) { return boost::asio::ssl::stream_base::server; } else { return boost::asio::ssl::stream_base::client; } } - - io_service_ptr m_io_service; - context_ptr m_context; - socket_ptr m_socket; - timer_ptr m_timer; - bool m_is_server; + + io_service_ptr m_io_service; + context_ptr m_context; + socket_ptr m_socket; + timer_ptr m_timer; + bool m_is_server; connection_hdl m_hdl; socket_init_handler m_socket_init_handler;