From 99fc97f3cf5ca44e4a3c584f10b3cc97493f88c5 Mon Sep 17 00:00:00 2001
From: Seva <seva@binarytrails.net>
Date: Mon, 26 Aug 2019 19:15:39 -0400
Subject: [PATCH] http: return from async_handshake on op abort

---
 src/http.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/http.cpp b/src/http.cpp
index 821367fa..3e545246 100644
--- a/src/http.cpp
+++ b/src/http.cpp
@@ -197,6 +197,8 @@ Connection::async_handshake(HandlerCb cb)
         ssl_socket_->async_handshake(asio::ssl::stream<asio::ip::tcp::socket>::client,
                                     [this, cb](const asio::error_code& ec)
         {
+            if (ec == asio::error::operation_aborted)
+                return;
             auto verify_ec = SSL_get_verify_result(ssl_socket_->asio_ssl_stream().native_handle());
             if (verify_ec == X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN /*19*/ and logger_)
                 logger_->d("[http:client]  [connection:%i] allow self-signed certificate in handshake", id_);
@@ -648,6 +650,8 @@ Request::connect(std::vector<asio::ip::tcp::endpoint>&& endpoints, HandlerCb cb)
                                               | asio::ssl::verify_fail_if_no_peer_cert);
             if (conn_->is_ssl()){
                 conn_->async_handshake([this, cb](const asio::error_code& ec){
+                    if (ec == asio::error::operation_aborted)
+                        return;
                     if (ec and logger_)
                         logger_->e("[http:client]  [request:%i] handshake error: %s", id_, ec.message().c_str());
                     else if (logger_)
-- 
GitLab