From d7cfe464a2d27c1b9eff959f440c900849604f91 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Fri, 6 Mar 2015 23:24:59 +0900 Subject: [PATCH] asio: client::configure_tls_context takes error_code --- examples/asio-cl.cc | 3 ++- examples/asio-cl2.cc | 3 ++- src/asio_client_tls_context.cc | 8 +++++++- src/includes/nghttp2/asio_http2_client.h | 4 +++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/examples/asio-cl.cc b/examples/asio-cl.cc index 67a8b1b4..7285d688 100644 --- a/examples/asio-cl.cc +++ b/examples/asio-cl.cc @@ -34,13 +34,14 @@ using namespace nghttp2::asio_http2::client; int main(int argc, char *argv[]) { try { + boost::system::error_code ec; boost::asio::io_service io_service; boost::asio::ssl::context tls_ctx(boost::asio::ssl::context::sslv23); tls_ctx.set_default_verify_paths(); // disabled to make development easier... // tls_ctx.set_verify_mode(boost::asio::ssl::verify_peer); - configure_tls_context(tls_ctx); + configure_tls_context(ec, tls_ctx); session sess(io_service, tls_ctx, "localhost", "3000"); sess.on_connect([&sess](tcp::resolver::iterator endpoint_it) { diff --git a/examples/asio-cl2.cc b/examples/asio-cl2.cc index 69f46ba4..a3133b6c 100644 --- a/examples/asio-cl2.cc +++ b/examples/asio-cl2.cc @@ -58,13 +58,14 @@ void print_header(const request &req) { int main(int argc, char *argv[]) { try { + boost::system::error_code ec; boost::asio::io_service io_service; boost::asio::ssl::context tls_ctx(boost::asio::ssl::context::sslv23); tls_ctx.set_default_verify_paths(); // disabled to make development easier... // tls_ctx.set_verify_mode(boost::asio::ssl::verify_peer); - configure_tls_context(tls_ctx); + configure_tls_context(ec, tls_ctx); session sess(io_service, tls_ctx, "localhost", "3000"); sess.on_connect([&sess](tcp::resolver::iterator endpoint_it) { diff --git a/src/asio_client_tls_context.cc b/src/asio_client_tls_context.cc index 7eaef8d4..55138341 100644 --- a/src/asio_client_tls_context.cc +++ b/src/asio_client_tls_context.cc @@ -47,10 +47,16 @@ int client_select_next_proto_cb(SSL *ssl, unsigned char **out, } } // namespace -void configure_tls_context(boost::asio::ssl::context &tls_ctx) { +boost::system::error_code +configure_tls_context(boost::system::error_code &ec, + boost::asio::ssl::context &tls_ctx) { + ec.clear(); + auto ctx = tls_ctx.native_handle(); SSL_CTX_set_next_proto_select_cb(ctx, client_select_next_proto_cb, nullptr); + + return ec; } } // namespace client diff --git a/src/includes/nghttp2/asio_http2_client.h b/src/includes/nghttp2/asio_http2_client.h index 9d4750d3..03aacadc 100644 --- a/src/includes/nghttp2/asio_http2_client.h +++ b/src/includes/nghttp2/asio_http2_client.h @@ -173,7 +173,9 @@ private: // configure |tls_ctx| for client use. Currently, we just set NPN // callback for HTTP/2. -void configure_tls_context(boost::asio::ssl::context &tls_ctx); +boost::system::error_code +configure_tls_context(boost::system::error_code &ec, + boost::asio::ssl::context &tls_ctx); } // namespace client