Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/marian-nmt/Simple-WebSocket-Server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreidheim <eidheim@gmail.com>2017-06-28 11:57:29 +0300
committereidheim <eidheim@gmail.com>2017-06-28 11:57:29 +0300
commit1418c0e7b818c63b68837944ab5a624f56072ee3 (patch)
treedfd04070f900d368e46a3e608a0e6a47f97c4843 /client_wss.hpp
parent2f42ae53b083983f99c7321636effd32e13f6f9b (diff)
Added .clang-format file and applied style to source files
Diffstat (limited to 'client_wss.hpp')
-rw-r--r--client_wss.hpp122
1 files changed, 59 insertions, 63 deletions
diff --git a/client_wss.hpp b/client_wss.hpp
index 8b736c0..6c7313d 100644
--- a/client_wss.hpp
+++ b/client_wss.hpp
@@ -1,5 +1,5 @@
#ifndef CLIENT_WSS_HPP
-#define CLIENT_WSS_HPP
+#define CLIENT_WSS_HPP
#include "client_ws.hpp"
@@ -11,69 +11,65 @@
namespace SimpleWeb {
- typedef asio::ssl::stream<asio::ip::tcp::socket> WSS;
-
- template<>
- class SocketClient<WSS> : public SocketClientBase<WSS> {
- public:
- SocketClient(const std::string& server_port_path, bool verify_certificate=true,
- const std::string& cert_file=std::string(), const std::string& private_key_file=std::string(),
- const std::string& verify_file=std::string()) :
- SocketClientBase<WSS>::SocketClientBase(server_port_path, 443),
- context(asio::ssl::context::tlsv12) {
- if(cert_file.size()>0 && private_key_file.size()>0) {
- context.use_certificate_chain_file(cert_file);
- context.use_private_key_file(private_key_file, asio::ssl::context::pem);
- }
-
- if(verify_certificate)
- context.set_verify_callback(asio::ssl::rfc2818_verification(host));
-
- if(verify_file.size()>0)
- context.load_verify_file(verify_file);
- else
- context.set_default_verify_paths();
-
- if(verify_file.size()>0 || verify_certificate)
- context.set_verify_mode(asio::ssl::verify_peer);
- else
- context.set_verify_mode(asio::ssl::verify_none);
- };
+ typedef asio::ssl::stream<asio::ip::tcp::socket> WSS;
+
+ template <>
+ class SocketClient<WSS> : public SocketClientBase<WSS> {
+ public:
+ SocketClient(const std::string &server_port_path, bool verify_certificate = true,
+ const std::string &cert_file = std::string(), const std::string &private_key_file = std::string(),
+ const std::string &verify_file = std::string())
+ : SocketClientBase<WSS>::SocketClientBase(server_port_path, 443), context(asio::ssl::context::tlsv12) {
+ if(cert_file.size() > 0 && private_key_file.size() > 0) {
+ context.use_certificate_chain_file(cert_file);
+ context.use_private_key_file(private_key_file, asio::ssl::context::pem);
+ }
+
+ if(verify_certificate)
+ context.set_verify_callback(asio::ssl::rfc2818_verification(host));
+
+ if(verify_file.size() > 0)
+ context.load_verify_file(verify_file);
+ else
+ context.set_default_verify_paths();
+
+ if(verify_file.size() > 0 || verify_certificate)
+ context.set_verify_mode(asio::ssl::verify_peer);
+ else
+ context.set_verify_mode(asio::ssl::verify_none);
+ };
- protected:
- asio::ssl::context context;
-
- void connect() {
- asio::ip::tcp::resolver::query query(host, std::to_string(port));
-
- resolver->async_resolve(query, [this]
- (const error_code &ec, asio::ip::tcp::resolver::iterator it){
- if(!ec) {
- connection=std::shared_ptr<Connection>(new Connection(new WSS(*io_service, context)));
-
- asio::async_connect(connection->socket->lowest_layer(), it, [this]
- (const error_code &ec, asio::ip::tcp::resolver::iterator /*it*/){
- if(!ec) {
- asio::ip::tcp::no_delay option(true);
- connection->socket->lowest_layer().set_option(option);
-
- connection->socket->async_handshake(asio::ssl::stream_base::client,
- [this](const error_code& ec) {
- if(!ec)
- handshake();
- else if(on_error)
- on_error(ec);
- });
- }
- else if(on_error)
- on_error(ec);
- });
- }
+ protected:
+ asio::ssl::context context;
+
+ void connect() {
+ asio::ip::tcp::resolver::query query(host, std::to_string(port));
+
+ resolver->async_resolve(query, [this](const error_code &ec, asio::ip::tcp::resolver::iterator it) {
+ if(!ec) {
+ connection = std::shared_ptr<Connection>(new Connection(new WSS(*io_service, context)));
+
+ asio::async_connect(connection->socket->lowest_layer(), it, [this](const error_code &ec, asio::ip::tcp::resolver::iterator /*it*/) {
+ if(!ec) {
+ asio::ip::tcp::no_delay option(true);
+ connection->socket->lowest_layer().set_option(option);
+
+ connection->socket->async_handshake(asio::ssl::stream_base::client, [this](const error_code &ec) {
+ if(!ec)
+ handshake();
else if(on_error)
- on_error(ec);
- });
+ on_error(ec);
+ });
+ }
+ else if(on_error)
+ on_error(ec);
+ });
}
- };
-}
+ else if(on_error)
+ on_error(ec);
+ });
+ }
+ };
+} // namespace SimpleWeb
-#endif /* CLIENT_WSS_HPP */ \ No newline at end of file
+#endif /* CLIENT_WSS_HPP */ \ No newline at end of file