You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by wh...@apache.org on 2015/10/15 02:35:39 UTC
[15/51] [partial] hadoop git commit: HDFS-9207. Move the
implementation to the hdfs-native-client module. Contributed by Haohui Mai.
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4cd3b992/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/context_service.hpp
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/context_service.hpp b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/context_service.hpp
deleted file mode 100644
index 34928aa..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/context_service.hpp
+++ /dev/null
@@ -1,174 +0,0 @@
-//
-// ssl/old/context_service.hpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#ifndef ASIO_SSL_OLD_CONTEXT_SERVICE_HPP
-#define ASIO_SSL_OLD_CONTEXT_SERVICE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
-
-#include "asio/detail/config.hpp"
-#include <string>
-#include <boost/noncopyable.hpp>
-#include "asio/error.hpp"
-#include "asio/io_service.hpp"
-#include "asio/ssl/context_base.hpp"
-#include "asio/ssl/old/detail/openssl_context_service.hpp"
-
-#include "asio/detail/push_options.hpp"
-
-namespace asio {
-namespace ssl {
-namespace old {
-
-/// Default service implementation for a context.
-class context_service
-#if defined(GENERATING_DOCUMENTATION)
- : public asio::io_service::service
-#else
- : public asio::detail::service_base<context_service>
-#endif
-{
-private:
- // The type of the platform-specific implementation.
- typedef old::detail::openssl_context_service service_impl_type;
-
-public:
-#if defined(GENERATING_DOCUMENTATION)
- /// The unique service identifier.
- static asio::io_service::id id;
-#endif
-
- /// The type of the context.
-#if defined(GENERATING_DOCUMENTATION)
- typedef implementation_defined impl_type;
-#else
- typedef service_impl_type::impl_type impl_type;
-#endif
-
- /// Constructor.
- explicit context_service(asio::io_service& io_service)
- : asio::detail::service_base<context_service>(io_service),
- service_impl_(asio::use_service<service_impl_type>(io_service))
- {
- }
-
- /// Return a null context implementation.
- impl_type null() const
- {
- return service_impl_.null();
- }
-
- /// Create a new context implementation.
- void create(impl_type& impl, context_base::method m)
- {
- service_impl_.create(impl, m);
- }
-
- /// Destroy a context implementation.
- void destroy(impl_type& impl)
- {
- service_impl_.destroy(impl);
- }
-
- /// Set options on the context.
- asio::error_code set_options(impl_type& impl,
- context_base::options o, asio::error_code& ec)
- {
- return service_impl_.set_options(impl, o, ec);
- }
-
- /// Set peer verification mode.
- asio::error_code set_verify_mode(impl_type& impl,
- context_base::verify_mode v, asio::error_code& ec)
- {
- return service_impl_.set_verify_mode(impl, v, ec);
- }
-
- /// Load a certification authority file for performing verification.
- asio::error_code load_verify_file(impl_type& impl,
- const std::string& filename, asio::error_code& ec)
- {
- return service_impl_.load_verify_file(impl, filename, ec);
- }
-
- /// Add a directory containing certification authority files to be used for
- /// performing verification.
- asio::error_code add_verify_path(impl_type& impl,
- const std::string& path, asio::error_code& ec)
- {
- return service_impl_.add_verify_path(impl, path, ec);
- }
-
- /// Use a certificate from a file.
- asio::error_code use_certificate_file(impl_type& impl,
- const std::string& filename, context_base::file_format format,
- asio::error_code& ec)
- {
- return service_impl_.use_certificate_file(impl, filename, format, ec);
- }
-
- /// Use a certificate chain from a file.
- asio::error_code use_certificate_chain_file(impl_type& impl,
- const std::string& filename, asio::error_code& ec)
- {
- return service_impl_.use_certificate_chain_file(impl, filename, ec);
- }
-
- /// Use a private key from a file.
- asio::error_code use_private_key_file(impl_type& impl,
- const std::string& filename, context_base::file_format format,
- asio::error_code& ec)
- {
- return service_impl_.use_private_key_file(impl, filename, format, ec);
- }
-
- /// Use an RSA private key from a file.
- asio::error_code use_rsa_private_key_file(impl_type& impl,
- const std::string& filename, context_base::file_format format,
- asio::error_code& ec)
- {
- return service_impl_.use_rsa_private_key_file(impl, filename, format, ec);
- }
-
- /// Use the specified file to obtain the temporary Diffie-Hellman parameters.
- asio::error_code use_tmp_dh_file(impl_type& impl,
- const std::string& filename, asio::error_code& ec)
- {
- return service_impl_.use_tmp_dh_file(impl, filename, ec);
- }
-
- /// Set the password callback.
- template <typename PasswordCallback>
- asio::error_code set_password_callback(impl_type& impl,
- PasswordCallback callback, asio::error_code& ec)
- {
- return service_impl_.set_password_callback(impl, callback, ec);
- }
-
-private:
- // Destroy all user-defined handler objects owned by the service.
- void shutdown_service()
- {
- }
-
- // The service that provides the platform-specific implementation.
- service_impl_type& service_impl_;
-};
-
-} // namespace old
-} // namespace ssl
-} // namespace asio
-
-#include "asio/detail/pop_options.hpp"
-
-#endif // ASIO_SSL_OLD_CONTEXT_SERVICE_HPP
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4cd3b992/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/detail/openssl_context_service.hpp
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/detail/openssl_context_service.hpp b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/detail/openssl_context_service.hpp
deleted file mode 100644
index 941ad26..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/detail/openssl_context_service.hpp
+++ /dev/null
@@ -1,386 +0,0 @@
-//
-// ssl/old/detail/openssl_context_service.hpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#ifndef ASIO_SSL_OLD_DETAIL_OPENSSL_CONTEXT_SERVICE_HPP
-#define ASIO_SSL_OLD_DETAIL_OPENSSL_CONTEXT_SERVICE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
-
-#include "asio/detail/config.hpp"
-#include <cstring>
-#include <string>
-#include <boost/function.hpp>
-#include "asio/detail/throw_error.hpp"
-#include "asio/error.hpp"
-#include "asio/io_service.hpp"
-#include "asio/ssl/context_base.hpp"
-#include "asio/ssl/detail/openssl_init.hpp"
-#include "asio/ssl/detail/openssl_types.hpp"
-
-#include "asio/detail/push_options.hpp"
-
-namespace asio {
-namespace ssl {
-namespace old {
-namespace detail {
-
-class openssl_context_service
- : public asio::detail::service_base<openssl_context_service>
-{
-public:
- // The native type of the context.
- typedef ::SSL_CTX* impl_type;
-
- // The type for the password callback function object.
- typedef boost::function<std::string(std::size_t,
- context_base::password_purpose)> password_callback_type;
-
- // Constructor.
- openssl_context_service(asio::io_service& io_service)
- : asio::detail::service_base<openssl_context_service>(io_service)
- {
- }
-
- // Destroy all user-defined handler objects owned by the service.
- void shutdown_service()
- {
- }
-
- // Return a null context implementation.
- static impl_type null()
- {
- return 0;
- }
-
- // Create a new context implementation.
- void create(impl_type& impl, context_base::method m)
- {
- switch (m)
- {
-#if defined(OPENSSL_NO_SSL2)
- case context_base::sslv2:
- case context_base::sslv2_client:
- case context_base::sslv2_server:
- asio::detail::throw_error(asio::error::invalid_argument);
- break;
-#else // defined(OPENSSL_NO_SSL2)
- case context_base::sslv2:
- impl = ::SSL_CTX_new(::SSLv2_method());
- break;
- case context_base::sslv2_client:
- impl = ::SSL_CTX_new(::SSLv2_client_method());
- break;
- case context_base::sslv2_server:
- impl = ::SSL_CTX_new(::SSLv2_server_method());
- break;
-#endif // defined(OPENSSL_NO_SSL2)
- case context_base::sslv3:
- impl = ::SSL_CTX_new(::SSLv3_method());
- break;
- case context_base::sslv3_client:
- impl = ::SSL_CTX_new(::SSLv3_client_method());
- break;
- case context_base::sslv3_server:
- impl = ::SSL_CTX_new(::SSLv3_server_method());
- break;
- case context_base::tlsv1:
- impl = ::SSL_CTX_new(::TLSv1_method());
- break;
- case context_base::tlsv1_client:
- impl = ::SSL_CTX_new(::TLSv1_client_method());
- break;
- case context_base::tlsv1_server:
- impl = ::SSL_CTX_new(::TLSv1_server_method());
- break;
- case context_base::sslv23:
- impl = ::SSL_CTX_new(::SSLv23_method());
- break;
- case context_base::sslv23_client:
- impl = ::SSL_CTX_new(::SSLv23_client_method());
- break;
- case context_base::sslv23_server:
- impl = ::SSL_CTX_new(::SSLv23_server_method());
- break;
- default:
- impl = ::SSL_CTX_new(0);
- break;
- }
- }
-
- // Destroy a context implementation.
- void destroy(impl_type& impl)
- {
- if (impl != null())
- {
- if (impl->default_passwd_callback_userdata)
- {
- password_callback_type* callback =
- static_cast<password_callback_type*>(
- impl->default_passwd_callback_userdata);
- delete callback;
- impl->default_passwd_callback_userdata = 0;
- }
-
- ::SSL_CTX_free(impl);
- impl = null();
- }
- }
-
- // Set options on the context.
- asio::error_code set_options(impl_type& impl,
- context_base::options o, asio::error_code& ec)
- {
- ::SSL_CTX_set_options(impl, o);
-
- ec = asio::error_code();
- return ec;
- }
-
- // Set peer verification mode.
- asio::error_code set_verify_mode(impl_type& impl,
- context_base::verify_mode v, asio::error_code& ec)
- {
- ::SSL_CTX_set_verify(impl, v, 0);
-
- ec = asio::error_code();
- return ec;
- }
-
- // Load a certification authority file for performing verification.
- asio::error_code load_verify_file(impl_type& impl,
- const std::string& filename, asio::error_code& ec)
- {
- if (::SSL_CTX_load_verify_locations(impl, filename.c_str(), 0) != 1)
- {
- ec = asio::error::invalid_argument;
- return ec;
- }
-
- ec = asio::error_code();
- return ec;
- }
-
- // Add a directory containing certification authority files to be used for
- // performing verification.
- asio::error_code add_verify_path(impl_type& impl,
- const std::string& path, asio::error_code& ec)
- {
- if (::SSL_CTX_load_verify_locations(impl, 0, path.c_str()) != 1)
- {
- ec = asio::error::invalid_argument;
- return ec;
- }
-
- ec = asio::error_code();
- return ec;
- }
-
- // Use a certificate from a file.
- asio::error_code use_certificate_file(impl_type& impl,
- const std::string& filename, context_base::file_format format,
- asio::error_code& ec)
- {
- int file_type;
- switch (format)
- {
- case context_base::asn1:
- file_type = SSL_FILETYPE_ASN1;
- break;
- case context_base::pem:
- file_type = SSL_FILETYPE_PEM;
- break;
- default:
- {
- ec = asio::error::invalid_argument;
- return ec;
- }
- }
-
- if (::SSL_CTX_use_certificate_file(impl, filename.c_str(), file_type) != 1)
- {
- ec = asio::error::invalid_argument;
- return ec;
- }
-
- ec = asio::error_code();
- return ec;
- }
-
- // Use a certificate chain from a file.
- asio::error_code use_certificate_chain_file(impl_type& impl,
- const std::string& filename, asio::error_code& ec)
- {
- if (::SSL_CTX_use_certificate_chain_file(impl, filename.c_str()) != 1)
- {
- ec = asio::error::invalid_argument;
- return ec;
- }
-
- ec = asio::error_code();
- return ec;
- }
-
- // Use a private key from a file.
- asio::error_code use_private_key_file(impl_type& impl,
- const std::string& filename, context_base::file_format format,
- asio::error_code& ec)
- {
- int file_type;
- switch (format)
- {
- case context_base::asn1:
- file_type = SSL_FILETYPE_ASN1;
- break;
- case context_base::pem:
- file_type = SSL_FILETYPE_PEM;
- break;
- default:
- {
- ec = asio::error::invalid_argument;
- return ec;
- }
- }
-
- if (::SSL_CTX_use_PrivateKey_file(impl, filename.c_str(), file_type) != 1)
- {
- ec = asio::error::invalid_argument;
- return ec;
- }
-
- ec = asio::error_code();
- return ec;
- }
-
- // Use an RSA private key from a file.
- asio::error_code use_rsa_private_key_file(impl_type& impl,
- const std::string& filename, context_base::file_format format,
- asio::error_code& ec)
- {
- int file_type;
- switch (format)
- {
- case context_base::asn1:
- file_type = SSL_FILETYPE_ASN1;
- break;
- case context_base::pem:
- file_type = SSL_FILETYPE_PEM;
- break;
- default:
- {
- ec = asio::error::invalid_argument;
- return ec;
- }
- }
-
- if (::SSL_CTX_use_RSAPrivateKey_file(
- impl, filename.c_str(), file_type) != 1)
- {
- ec = asio::error::invalid_argument;
- return ec;
- }
-
- ec = asio::error_code();
- return ec;
- }
-
- // Use the specified file to obtain the temporary Diffie-Hellman parameters.
- asio::error_code use_tmp_dh_file(impl_type& impl,
- const std::string& filename, asio::error_code& ec)
- {
- ::BIO* bio = ::BIO_new_file(filename.c_str(), "r");
- if (!bio)
- {
- ec = asio::error::invalid_argument;
- return ec;
- }
-
- ::DH* dh = ::PEM_read_bio_DHparams(bio, 0, 0, 0);
- if (!dh)
- {
- ::BIO_free(bio);
- ec = asio::error::invalid_argument;
- return ec;
- }
-
- ::BIO_free(bio);
- int result = ::SSL_CTX_set_tmp_dh(impl, dh);
- ::DH_free(dh);
- if (result != 1)
- {
- ec = asio::error::invalid_argument;
- return ec;
- }
-
- ec = asio::error_code();
- return ec;
- }
-
- static int password_callback(char* buf, int size, int purpose, void* data)
- {
- using namespace std; // For strncat and strlen.
-
- if (data)
- {
- password_callback_type* callback =
- static_cast<password_callback_type*>(data);
- std::string passwd = (*callback)(static_cast<std::size_t>(size),
- purpose ? context_base::for_writing : context_base::for_reading);
- *buf = '\0';
- strncat(buf, passwd.c_str(), size);
- return strlen(buf);
- }
-
- return 0;
- }
-
- // Set the password callback.
- template <typename Password_Callback>
- asio::error_code set_password_callback(impl_type& impl,
- Password_Callback callback, asio::error_code& ec)
- {
- // Allocate callback function object if not already present.
- if (impl->default_passwd_callback_userdata)
- {
- password_callback_type* callback_function =
- static_cast<password_callback_type*>(
- impl->default_passwd_callback_userdata);
- *callback_function = callback;
- }
- else
- {
- password_callback_type* callback_function =
- new password_callback_type(callback);
- impl->default_passwd_callback_userdata = callback_function;
- }
-
- // Set the password callback.
- SSL_CTX_set_default_passwd_cb(impl,
- &openssl_context_service::password_callback);
-
- ec = asio::error_code();
- return ec;
- }
-
-private:
- // Ensure openssl is initialised.
- asio::ssl::detail::openssl_init<> init_;
-};
-
-} // namespace detail
-} // namespace old
-} // namespace ssl
-} // namespace asio
-
-#include "asio/detail/pop_options.hpp"
-
-#endif // ASIO_SSL_OLD_DETAIL_OPENSSL_CONTEXT_SERVICE_HPP
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4cd3b992/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/detail/openssl_operation.hpp
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/detail/openssl_operation.hpp b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/detail/openssl_operation.hpp
deleted file mode 100644
index 9ea9c94..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/detail/openssl_operation.hpp
+++ /dev/null
@@ -1,524 +0,0 @@
-//
-// ssl/old/detail/openssl_operation.hpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#ifndef ASIO_SSL_OLD_DETAIL_OPENSSL_OPERATION_HPP
-#define ASIO_SSL_OLD_DETAIL_OPENSSL_OPERATION_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
-
-#include "asio/detail/config.hpp"
-#include <boost/function.hpp>
-#include <boost/bind.hpp>
-#include "asio/buffer.hpp"
-#include "asio/detail/assert.hpp"
-#include "asio/detail/socket_ops.hpp"
-#include "asio/placeholders.hpp"
-#include "asio/ssl/detail/openssl_types.hpp"
-#include "asio/ssl/error.hpp"
-#include "asio/strand.hpp"
-#include "asio/system_error.hpp"
-#include "asio/write.hpp"
-
-#include "asio/detail/push_options.hpp"
-
-namespace asio {
-namespace ssl {
-namespace old {
-namespace detail {
-
-typedef boost::function<int (::SSL*)> ssl_primitive_func;
-typedef boost::function<void (const asio::error_code&, int)>
- user_handler_func;
-
-// Network send_/recv buffer implementation
-//
-//
-class net_buffer
-{
- static const int NET_BUF_SIZE = 16*1024 + 256; // SSL record size + spare
-
- unsigned char buf_[NET_BUF_SIZE];
- unsigned char* data_start_;
- unsigned char* data_end_;
-
-public:
- net_buffer()
- {
- data_start_ = data_end_ = buf_;
- }
- unsigned char* get_unused_start() { return data_end_; }
- unsigned char* get_data_start() { return data_start_; }
- size_t get_unused_len() { return (NET_BUF_SIZE - (data_end_ - buf_)); }
- size_t get_data_len() { return (data_end_ - data_start_); }
- void data_added(size_t count)
- {
- data_end_ += count;
- data_end_ = data_end_ > (buf_ + NET_BUF_SIZE)?
- (buf_ + NET_BUF_SIZE):
- data_end_;
- }
- void data_removed(size_t count)
- {
- data_start_ += count;
- if (data_start_ >= data_end_) reset();
- }
- void reset() { data_start_ = buf_; data_end_ = buf_; }
- bool has_data() { return (data_start_ < data_end_); }
-}; // class net_buffer
-
-//
-// Operation class
-//
-//
-template <typename Stream>
-class openssl_operation
-{
-public:
-
- // Constructor for asynchronous operations
- openssl_operation(ssl_primitive_func primitive,
- Stream& socket,
- net_buffer& recv_buf,
- SSL* session,
- BIO* ssl_bio,
- user_handler_func handler,
- asio::io_service::strand& strand
- )
- : primitive_(primitive)
- , user_handler_(handler)
- , strand_(&strand)
- , recv_buf_(recv_buf)
- , socket_(socket)
- , ssl_bio_(ssl_bio)
- , session_(session)
- {
- write_ = boost::bind(
- &openssl_operation::do_async_write,
- this, boost::arg<1>(), boost::arg<2>()
- );
- read_ = boost::bind(
- &openssl_operation::do_async_read,
- this
- );
- handler_= boost::bind(
- &openssl_operation::async_user_handler,
- this, boost::arg<1>(), boost::arg<2>()
- );
- }
-
- // Constructor for synchronous operations
- openssl_operation(ssl_primitive_func primitive,
- Stream& socket,
- net_buffer& recv_buf,
- SSL* session,
- BIO* ssl_bio)
- : primitive_(primitive)
- , strand_(0)
- , recv_buf_(recv_buf)
- , socket_(socket)
- , ssl_bio_(ssl_bio)
- , session_(session)
- {
- write_ = boost::bind(
- &openssl_operation::do_sync_write,
- this, boost::arg<1>(), boost::arg<2>()
- );
- read_ = boost::bind(
- &openssl_operation::do_sync_read,
- this
- );
- handler_ = boost::bind(
- &openssl_operation::sync_user_handler,
- this, boost::arg<1>(), boost::arg<2>()
- );
- }
-
- // Start operation
- // In case of asynchronous it returns 0, in sync mode returns success code
- // or throws an error...
- int start()
- {
- int rc = primitive_( session_ );
-
- bool is_operation_done = (rc > 0);
- // For connect/accept/shutdown, the operation
- // is done, when return code is 1
- // for write, it is done, when is retcode > 0
- // for read, it is done when retcode > 0
-
- int error_code = !is_operation_done ?
- ::SSL_get_error( session_, rc ) :
- 0;
- int sys_error_code = ERR_get_error();
-
- if (error_code == SSL_ERROR_SSL)
- return handler_(asio::error_code(
- sys_error_code, asio::error::get_ssl_category()), rc);
-
- bool is_read_needed = (error_code == SSL_ERROR_WANT_READ);
- bool is_write_needed = (error_code == SSL_ERROR_WANT_WRITE ||
- ::BIO_ctrl_pending( ssl_bio_ ));
- bool is_shut_down_received =
- ((::SSL_get_shutdown( session_ ) & SSL_RECEIVED_SHUTDOWN) ==
- SSL_RECEIVED_SHUTDOWN);
- bool is_shut_down_sent =
- ((::SSL_get_shutdown( session_ ) & SSL_SENT_SHUTDOWN) ==
- SSL_SENT_SHUTDOWN);
-
- if (is_shut_down_sent && is_shut_down_received
- && is_operation_done && !is_write_needed)
- // SSL connection is shut down cleanly
- return handler_(asio::error_code(), 1);
-
- if (is_shut_down_received && !is_operation_done)
- // Shutdown has been requested, while we were reading or writing...
- // abort our action...
- return handler_(asio::error::shut_down, 0);
-
- if (!is_operation_done && !is_read_needed && !is_write_needed
- && !is_shut_down_sent)
- {
- // The operation has failed... It is not completed and does
- // not want network communication nor does want to send shutdown out...
- if (error_code == SSL_ERROR_SYSCALL)
- {
- return handler_(asio::error_code(
- sys_error_code, asio::error::system_category), rc);
- }
- else
- {
- return handler_(asio::error_code(
- sys_error_code, asio::error::get_ssl_category()), rc);
- }
- }
-
- if (!is_operation_done && !is_write_needed)
- {
- // We may have left over data that we can pass to SSL immediately
- if (recv_buf_.get_data_len() > 0)
- {
- // Pass the buffered data to SSL
- int written = ::BIO_write
- (
- ssl_bio_,
- recv_buf_.get_data_start(),
- recv_buf_.get_data_len()
- );
-
- if (written > 0)
- {
- recv_buf_.data_removed(written);
- }
- else if (written < 0)
- {
- if (!BIO_should_retry(ssl_bio_))
- {
- // Some serios error with BIO....
- return handler_(asio::error::no_recovery, 0);
- }
- }
-
- return start();
- }
- else if (is_read_needed || (is_shut_down_sent && !is_shut_down_received))
- {
- return read_();
- }
- }
-
- // Continue with operation, flush any SSL data out to network...
- return write_(is_operation_done, rc);
- }
-
-// Private implementation
-private:
- typedef boost::function<int (const asio::error_code&, int)>
- int_handler_func;
- typedef boost::function<int (bool, int)> write_func;
- typedef boost::function<int ()> read_func;
-
- ssl_primitive_func primitive_;
- user_handler_func user_handler_;
- asio::io_service::strand* strand_;
- write_func write_;
- read_func read_;
- int_handler_func handler_;
-
- net_buffer send_buf_; // buffers for network IO
-
- // The recv buffer is owned by the stream, not the operation, since there can
- // be left over bytes after passing the data up to the application, and these
- // bytes need to be kept around for the next read operation issued by the
- // application.
- net_buffer& recv_buf_;
-
- Stream& socket_;
- BIO* ssl_bio_;
- SSL* session_;
-
- //
- int sync_user_handler(const asio::error_code& error, int rc)
- {
- if (!error)
- return rc;
-
- throw asio::system_error(error);
- }
-
- int async_user_handler(asio::error_code error, int rc)
- {
- if (rc < 0)
- {
- if (!error)
- error = asio::error::no_recovery;
- rc = 0;
- }
-
- user_handler_(error, rc);
- return 0;
- }
-
- // Writes bytes asynchronously from SSL to NET
- int do_async_write(bool is_operation_done, int rc)
- {
- int len = ::BIO_ctrl_pending( ssl_bio_ );
- if ( len )
- {
- // There is something to write into net, do it...
- len = (int)send_buf_.get_unused_len() > len?
- len:
- send_buf_.get_unused_len();
-
- if (len == 0)
- {
- // In case our send buffer is full, we have just to wait until
- // previous send to complete...
- return 0;
- }
-
- // Read outgoing data from bio
- len = ::BIO_read( ssl_bio_, send_buf_.get_unused_start(), len);
-
- if (len > 0)
- {
- unsigned char *data_start = send_buf_.get_unused_start();
- send_buf_.data_added(len);
-
- ASIO_ASSERT(strand_);
- asio::async_write
- (
- socket_,
- asio::buffer(data_start, len),
- strand_->wrap
- (
- boost::bind
- (
- &openssl_operation::async_write_handler,
- this,
- is_operation_done,
- rc,
- asio::placeholders::error,
- asio::placeholders::bytes_transferred
- )
- )
- );
-
- return 0;
- }
- else if (!BIO_should_retry(ssl_bio_))
- {
- // Seems like fatal error
- // reading from SSL BIO has failed...
- handler_(asio::error::no_recovery, 0);
- return 0;
- }
- }
-
- if (is_operation_done)
- {
- // Finish the operation, with success
- handler_(asio::error_code(), rc);
- return 0;
- }
-
- // OPeration is not done and writing to net has been made...
- // start operation again
- start();
-
- return 0;
- }
-
- void async_write_handler(bool is_operation_done, int rc,
- const asio::error_code& error, size_t bytes_sent)
- {
- if (!error)
- {
- // Remove data from send buffer
- send_buf_.data_removed(bytes_sent);
-
- if (is_operation_done)
- handler_(asio::error_code(), rc);
- else
- // Since the operation was not completed, try it again...
- start();
- }
- else
- handler_(error, rc);
- }
-
- int do_async_read()
- {
- // Wait for new data
- ASIO_ASSERT(strand_);
- socket_.async_read_some
- (
- asio::buffer(recv_buf_.get_unused_start(),
- recv_buf_.get_unused_len()),
- strand_->wrap
- (
- boost::bind
- (
- &openssl_operation::async_read_handler,
- this,
- asio::placeholders::error,
- asio::placeholders::bytes_transferred
- )
- )
- );
- return 0;
- }
-
- void async_read_handler(const asio::error_code& error,
- size_t bytes_recvd)
- {
- if (!error)
- {
- recv_buf_.data_added(bytes_recvd);
-
- // Pass the received data to SSL
- int written = ::BIO_write
- (
- ssl_bio_,
- recv_buf_.get_data_start(),
- recv_buf_.get_data_len()
- );
-
- if (written > 0)
- {
- recv_buf_.data_removed(written);
- }
- else if (written < 0)
- {
- if (!BIO_should_retry(ssl_bio_))
- {
- // Some serios error with BIO....
- handler_(asio::error::no_recovery, 0);
- return;
- }
- }
-
- // and try the SSL primitive again
- start();
- }
- else
- {
- // Error in network level...
- // SSL can't continue either...
- handler_(error, 0);
- }
- }
-
- // Syncronous functions...
- int do_sync_write(bool is_operation_done, int rc)
- {
- int len = ::BIO_ctrl_pending( ssl_bio_ );
- if ( len )
- {
- // There is something to write into net, do it...
- len = (int)send_buf_.get_unused_len() > len?
- len:
- send_buf_.get_unused_len();
-
- // Read outgoing data from bio
- len = ::BIO_read( ssl_bio_, send_buf_.get_unused_start(), len);
-
- if (len > 0)
- {
- size_t sent_len = asio::write(
- socket_,
- asio::buffer(send_buf_.get_unused_start(), len)
- );
-
- send_buf_.data_added(len);
- send_buf_.data_removed(sent_len);
- }
- else if (!BIO_should_retry(ssl_bio_))
- {
- // Seems like fatal error
- // reading from SSL BIO has failed...
- throw asio::system_error(asio::error::no_recovery);
- }
- }
-
- if (is_operation_done)
- // Finish the operation, with success
- return rc;
-
- // Operation is not finished, start again.
- return start();
- }
-
- int do_sync_read()
- {
- size_t len = socket_.read_some
- (
- asio::buffer(recv_buf_.get_unused_start(),
- recv_buf_.get_unused_len())
- );
-
- // Write data to ssl
- recv_buf_.data_added(len);
-
- // Pass the received data to SSL
- int written = ::BIO_write
- (
- ssl_bio_,
- recv_buf_.get_data_start(),
- recv_buf_.get_data_len()
- );
-
- if (written > 0)
- {
- recv_buf_.data_removed(written);
- }
- else if (written < 0)
- {
- if (!BIO_should_retry(ssl_bio_))
- {
- // Some serios error with BIO....
- throw asio::system_error(asio::error::no_recovery);
- }
- }
-
- // Try the operation again
- return start();
- }
-}; // class openssl_operation
-
-} // namespace detail
-} // namespace old
-} // namespace ssl
-} // namespace asio
-
-#include "asio/detail/pop_options.hpp"
-
-#endif // ASIO_SSL_OLD_DETAIL_OPENSSL_OPERATION_HPP
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4cd3b992/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/detail/openssl_stream_service.hpp
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/detail/openssl_stream_service.hpp b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/detail/openssl_stream_service.hpp
deleted file mode 100644
index 11154e9..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/detail/openssl_stream_service.hpp
+++ /dev/null
@@ -1,571 +0,0 @@
-//
-// ssl/old/detail/stream_service.hpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#ifndef ASIO_SSL_OLD_DETAIL_OPENSSL_STREAM_SERVICE_HPP
-#define ASIO_SSL_OLD_DETAIL_OPENSSL_STREAM_SERVICE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
-
-#include "asio/detail/config.hpp"
-#include <cstddef>
-#include <climits>
-#include <memory>
-#include <boost/config.hpp>
-#include <boost/noncopyable.hpp>
-#include <boost/function.hpp>
-#include <boost/bind.hpp>
-#include "asio/detail/buffer_sequence_adapter.hpp"
-#include "asio/error.hpp"
-#include "asio/io_service.hpp"
-#include "asio/ssl/basic_context.hpp"
-#include "asio/ssl/stream_base.hpp"
-#include "asio/ssl/old/detail/openssl_operation.hpp"
-#include "asio/ssl/detail/openssl_types.hpp"
-#include "asio/strand.hpp"
-#include "asio/system_error.hpp"
-
-#include "asio/detail/push_options.hpp"
-
-namespace asio {
-namespace ssl {
-namespace old {
-namespace detail {
-
-class openssl_stream_service
- : public asio::detail::service_base<openssl_stream_service>
-{
-private:
- enum { max_buffer_size = INT_MAX };
-
- //Base handler for asyncrhonous operations
- template <typename Stream>
- class base_handler
- {
- public:
- typedef boost::function<
- void (const asio::error_code&, size_t)> func_t;
-
- base_handler(asio::io_service& io_service)
- : op_(NULL)
- , io_service_(io_service)
- , work_(io_service)
- {}
-
- void do_func(const asio::error_code& error, size_t size)
- {
- func_(error, size);
- }
-
- void set_operation(openssl_operation<Stream>* op) { op_ = op; }
- void set_func(func_t func) { func_ = func; }
-
- ~base_handler()
- {
- delete op_;
- }
-
- private:
- func_t func_;
- openssl_operation<Stream>* op_;
- asio::io_service& io_service_;
- asio::io_service::work work_;
- }; // class base_handler
-
- // Handler for asynchronous IO (write/read) operations
- template<typename Stream, typename Handler>
- class io_handler
- : public base_handler<Stream>
- {
- public:
- io_handler(Handler handler, asio::io_service& io_service)
- : base_handler<Stream>(io_service)
- , handler_(handler)
- {
- this->set_func(boost::bind(
- &io_handler<Stream, Handler>::handler_impl,
- this, boost::arg<1>(), boost::arg<2>() ));
- }
-
- private:
- Handler handler_;
- void handler_impl(const asio::error_code& error, size_t size)
- {
- std::auto_ptr<io_handler<Stream, Handler> > this_ptr(this);
- handler_(error, size);
- }
- }; // class io_handler
-
- // Handler for asyncrhonous handshake (connect, accept) functions
- template <typename Stream, typename Handler>
- class handshake_handler
- : public base_handler<Stream>
- {
- public:
- handshake_handler(Handler handler, asio::io_service& io_service)
- : base_handler<Stream>(io_service)
- , handler_(handler)
- {
- this->set_func(boost::bind(
- &handshake_handler<Stream, Handler>::handler_impl,
- this, boost::arg<1>(), boost::arg<2>() ));
- }
-
- private:
- Handler handler_;
- void handler_impl(const asio::error_code& error, size_t)
- {
- std::auto_ptr<handshake_handler<Stream, Handler> > this_ptr(this);
- handler_(error);
- }
-
- }; // class handshake_handler
-
- // Handler for asyncrhonous shutdown
- template <typename Stream, typename Handler>
- class shutdown_handler
- : public base_handler<Stream>
- {
- public:
- shutdown_handler(Handler handler, asio::io_service& io_service)
- : base_handler<Stream>(io_service),
- handler_(handler)
- {
- this->set_func(boost::bind(
- &shutdown_handler<Stream, Handler>::handler_impl,
- this, boost::arg<1>(), boost::arg<2>() ));
- }
-
- private:
- Handler handler_;
- void handler_impl(const asio::error_code& error, size_t)
- {
- std::auto_ptr<shutdown_handler<Stream, Handler> > this_ptr(this);
- handler_(error);
- }
- }; // class shutdown_handler
-
-public:
- // The implementation type.
- typedef struct impl_struct
- {
- ::SSL* ssl;
- ::BIO* ext_bio;
- net_buffer recv_buf;
- } * impl_type;
-
- // Construct a new stream socket service for the specified io_service.
- explicit openssl_stream_service(asio::io_service& io_service)
- : asio::detail::service_base<openssl_stream_service>(io_service),
- strand_(io_service)
- {
- }
-
- // Destroy all user-defined handler objects owned by the service.
- void shutdown_service()
- {
- }
-
- // Return a null stream implementation.
- impl_type null() const
- {
- return 0;
- }
-
- // Create a new stream implementation.
- template <typename Stream, typename Context_Service>
- void create(impl_type& impl, Stream& /*next_layer*/,
- basic_context<Context_Service>& context)
- {
- impl = new impl_struct;
- impl->ssl = ::SSL_new(context.impl());
- ::SSL_set_mode(impl->ssl, SSL_MODE_ENABLE_PARTIAL_WRITE);
- ::SSL_set_mode(impl->ssl, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER);
- ::BIO* int_bio = 0;
- impl->ext_bio = 0;
- ::BIO_new_bio_pair(&int_bio, 8192, &impl->ext_bio, 8192);
- ::SSL_set_bio(impl->ssl, int_bio, int_bio);
- }
-
- // Destroy a stream implementation.
- template <typename Stream>
- void destroy(impl_type& impl, Stream& /*next_layer*/)
- {
- if (impl != 0)
- {
- ::BIO_free(impl->ext_bio);
- ::SSL_free(impl->ssl);
- delete impl;
- impl = 0;
- }
- }
-
- // Perform SSL handshaking.
- template <typename Stream>
- asio::error_code handshake(impl_type& impl, Stream& next_layer,
- stream_base::handshake_type type, asio::error_code& ec)
- {
- try
- {
- openssl_operation<Stream> op(
- type == stream_base::client ?
- &ssl_wrap<mutex_type>::SSL_connect:
- &ssl_wrap<mutex_type>::SSL_accept,
- next_layer,
- impl->recv_buf,
- impl->ssl,
- impl->ext_bio);
- op.start();
- }
- catch (asio::system_error& e)
- {
- ec = e.code();
- return ec;
- }
-
- ec = asio::error_code();
- return ec;
- }
-
- // Start an asynchronous SSL handshake.
- template <typename Stream, typename Handler>
- void async_handshake(impl_type& impl, Stream& next_layer,
- stream_base::handshake_type type, Handler handler)
- {
- typedef handshake_handler<Stream, Handler> connect_handler;
-
- connect_handler* local_handler =
- new connect_handler(handler, get_io_service());
-
- openssl_operation<Stream>* op = new openssl_operation<Stream>
- (
- type == stream_base::client ?
- &ssl_wrap<mutex_type>::SSL_connect:
- &ssl_wrap<mutex_type>::SSL_accept,
- next_layer,
- impl->recv_buf,
- impl->ssl,
- impl->ext_bio,
- boost::bind
- (
- &base_handler<Stream>::do_func,
- local_handler,
- boost::arg<1>(),
- boost::arg<2>()
- ),
- strand_
- );
- local_handler->set_operation(op);
-
- strand_.post(boost::bind(&openssl_operation<Stream>::start, op));
- }
-
- // Shut down SSL on the stream.
- template <typename Stream>
- asio::error_code shutdown(impl_type& impl, Stream& next_layer,
- asio::error_code& ec)
- {
- try
- {
- openssl_operation<Stream> op(
- &ssl_wrap<mutex_type>::SSL_shutdown,
- next_layer,
- impl->recv_buf,
- impl->ssl,
- impl->ext_bio);
- op.start();
- }
- catch (asio::system_error& e)
- {
- ec = e.code();
- return ec;
- }
-
- ec = asio::error_code();
- return ec;
- }
-
- // Asynchronously shut down SSL on the stream.
- template <typename Stream, typename Handler>
- void async_shutdown(impl_type& impl, Stream& next_layer, Handler handler)
- {
- typedef shutdown_handler<Stream, Handler> disconnect_handler;
-
- disconnect_handler* local_handler =
- new disconnect_handler(handler, get_io_service());
-
- openssl_operation<Stream>* op = new openssl_operation<Stream>
- (
- &ssl_wrap<mutex_type>::SSL_shutdown,
- next_layer,
- impl->recv_buf,
- impl->ssl,
- impl->ext_bio,
- boost::bind
- (
- &base_handler<Stream>::do_func,
- local_handler,
- boost::arg<1>(),
- boost::arg<2>()
- ),
- strand_
- );
- local_handler->set_operation(op);
-
- strand_.post(boost::bind(&openssl_operation<Stream>::start, op));
- }
-
- // Write some data to the stream.
- template <typename Stream, typename Const_Buffers>
- std::size_t write_some(impl_type& impl, Stream& next_layer,
- const Const_Buffers& buffers, asio::error_code& ec)
- {
- size_t bytes_transferred = 0;
- try
- {
- asio::const_buffer buffer =
- asio::detail::buffer_sequence_adapter<
- asio::const_buffer, Const_Buffers>::first(buffers);
-
- std::size_t buffer_size = asio::buffer_size(buffer);
- if (buffer_size > max_buffer_size)
- buffer_size = max_buffer_size;
- else if (buffer_size == 0)
- {
- ec = asio::error_code();
- return 0;
- }
-
- boost::function<int (SSL*)> send_func =
- boost::bind(boost::type<int>(), &::SSL_write, boost::arg<1>(),
- asio::buffer_cast<const void*>(buffer),
- static_cast<int>(buffer_size));
- openssl_operation<Stream> op(
- send_func,
- next_layer,
- impl->recv_buf,
- impl->ssl,
- impl->ext_bio
- );
- bytes_transferred = static_cast<size_t>(op.start());
- }
- catch (asio::system_error& e)
- {
- ec = e.code();
- return 0;
- }
-
- ec = asio::error_code();
- return bytes_transferred;
- }
-
- // Start an asynchronous write.
- template <typename Stream, typename Const_Buffers, typename Handler>
- void async_write_some(impl_type& impl, Stream& next_layer,
- const Const_Buffers& buffers, Handler handler)
- {
- typedef io_handler<Stream, Handler> send_handler;
-
- asio::const_buffer buffer =
- asio::detail::buffer_sequence_adapter<
- asio::const_buffer, Const_Buffers>::first(buffers);
-
- std::size_t buffer_size = asio::buffer_size(buffer);
- if (buffer_size > max_buffer_size)
- buffer_size = max_buffer_size;
- else if (buffer_size == 0)
- {
- get_io_service().post(asio::detail::bind_handler(
- handler, asio::error_code(), 0));
- return;
- }
-
- send_handler* local_handler = new send_handler(handler, get_io_service());
-
- boost::function<int (SSL*)> send_func =
- boost::bind(boost::type<int>(), &::SSL_write, boost::arg<1>(),
- asio::buffer_cast<const void*>(buffer),
- static_cast<int>(buffer_size));
-
- openssl_operation<Stream>* op = new openssl_operation<Stream>
- (
- send_func,
- next_layer,
- impl->recv_buf,
- impl->ssl,
- impl->ext_bio,
- boost::bind
- (
- &base_handler<Stream>::do_func,
- local_handler,
- boost::arg<1>(),
- boost::arg<2>()
- ),
- strand_
- );
- local_handler->set_operation(op);
-
- strand_.post(boost::bind(&openssl_operation<Stream>::start, op));
- }
-
- // Read some data from the stream.
- template <typename Stream, typename Mutable_Buffers>
- std::size_t read_some(impl_type& impl, Stream& next_layer,
- const Mutable_Buffers& buffers, asio::error_code& ec)
- {
- size_t bytes_transferred = 0;
- try
- {
- asio::mutable_buffer buffer =
- asio::detail::buffer_sequence_adapter<
- asio::mutable_buffer, Mutable_Buffers>::first(buffers);
-
- std::size_t buffer_size = asio::buffer_size(buffer);
- if (buffer_size > max_buffer_size)
- buffer_size = max_buffer_size;
- else if (buffer_size == 0)
- {
- ec = asio::error_code();
- return 0;
- }
-
- boost::function<int (SSL*)> recv_func =
- boost::bind(boost::type<int>(), &::SSL_read, boost::arg<1>(),
- asio::buffer_cast<void*>(buffer),
- static_cast<int>(buffer_size));
- openssl_operation<Stream> op(recv_func,
- next_layer,
- impl->recv_buf,
- impl->ssl,
- impl->ext_bio
- );
-
- bytes_transferred = static_cast<size_t>(op.start());
- }
- catch (asio::system_error& e)
- {
- ec = e.code();
- return 0;
- }
-
- ec = asio::error_code();
- return bytes_transferred;
- }
-
- // Start an asynchronous read.
- template <typename Stream, typename Mutable_Buffers, typename Handler>
- void async_read_some(impl_type& impl, Stream& next_layer,
- const Mutable_Buffers& buffers, Handler handler)
- {
- typedef io_handler<Stream, Handler> recv_handler;
-
- asio::mutable_buffer buffer =
- asio::detail::buffer_sequence_adapter<
- asio::mutable_buffer, Mutable_Buffers>::first(buffers);
-
- std::size_t buffer_size = asio::buffer_size(buffer);
- if (buffer_size > max_buffer_size)
- buffer_size = max_buffer_size;
- else if (buffer_size == 0)
- {
- get_io_service().post(asio::detail::bind_handler(
- handler, asio::error_code(), 0));
- return;
- }
-
- recv_handler* local_handler = new recv_handler(handler, get_io_service());
-
- boost::function<int (SSL*)> recv_func =
- boost::bind(boost::type<int>(), &::SSL_read, boost::arg<1>(),
- asio::buffer_cast<void*>(buffer),
- static_cast<int>(buffer_size));
-
- openssl_operation<Stream>* op = new openssl_operation<Stream>
- (
- recv_func,
- next_layer,
- impl->recv_buf,
- impl->ssl,
- impl->ext_bio,
- boost::bind
- (
- &base_handler<Stream>::do_func,
- local_handler,
- boost::arg<1>(),
- boost::arg<2>()
- ),
- strand_
- );
- local_handler->set_operation(op);
-
- strand_.post(boost::bind(&openssl_operation<Stream>::start, op));
- }
-
- // Peek at the incoming data on the stream.
- template <typename Stream, typename Mutable_Buffers>
- std::size_t peek(impl_type& /*impl*/, Stream& /*next_layer*/,
- const Mutable_Buffers& /*buffers*/, asio::error_code& ec)
- {
- ec = asio::error_code();
- return 0;
- }
-
- // Determine the amount of data that may be read without blocking.
- template <typename Stream>
- std::size_t in_avail(impl_type& /*impl*/, Stream& /*next_layer*/,
- asio::error_code& ec)
- {
- ec = asio::error_code();
- return 0;
- }
-
-private:
- asio::io_service::strand strand_;
-
- typedef asio::detail::mutex mutex_type;
-
- template<typename Mutex>
- struct ssl_wrap
- {
- static Mutex ssl_mutex_;
-
- static int SSL_accept(SSL *ssl)
- {
- typename Mutex::scoped_lock lock(ssl_mutex_);
- return ::SSL_accept(ssl);
- }
-
- static int SSL_connect(SSL *ssl)
- {
- typename Mutex::scoped_lock lock(ssl_mutex_);
- return ::SSL_connect(ssl);
- }
-
- static int SSL_shutdown(SSL *ssl)
- {
- typename Mutex::scoped_lock lock(ssl_mutex_);
- return ::SSL_shutdown(ssl);
- }
- };
-};
-
-template<typename Mutex>
-Mutex openssl_stream_service::ssl_wrap<Mutex>::ssl_mutex_;
-
-} // namespace detail
-} // namespace old
-} // namespace ssl
-} // namespace asio
-
-#include "asio/detail/pop_options.hpp"
-
-#endif // ASIO_SSL_OLD_DETAIL_OPENSSL_STREAM_SERVICE_HPP
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4cd3b992/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/stream.hpp
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/stream.hpp b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/stream.hpp
deleted file mode 100644
index 42ab3c2..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/stream.hpp
+++ /dev/null
@@ -1,501 +0,0 @@
-//
-// ssl/old/stream.hpp
-// ~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#ifndef ASIO_SSL_OLD_STREAM_HPP
-#define ASIO_SSL_OLD_STREAM_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
-
-#include "asio/detail/config.hpp"
-#include <cstddef>
-#include <boost/noncopyable.hpp>
-#include "asio/detail/throw_error.hpp"
-#include "asio/detail/type_traits.hpp"
-#include "asio/error.hpp"
-#include "asio/ssl/basic_context.hpp"
-#include "asio/ssl/stream_base.hpp"
-#include "asio/ssl/stream_service.hpp"
-
-#include "asio/detail/push_options.hpp"
-
-namespace asio {
-namespace ssl {
-namespace old {
-
-/// Provides stream-oriented functionality using SSL.
-/**
- * The stream class template provides asynchronous and blocking stream-oriented
- * functionality using SSL.
- *
- * @par Thread Safety
- * @e Distinct @e objects: Safe.@n
- * @e Shared @e objects: Unsafe.
- *
- * @par Example
- * To use the SSL stream template with an ip::tcp::socket, you would write:
- * @code
- * asio::io_service io_service;
- * asio::ssl::context context(io_service, asio::ssl::context::sslv23);
- * asio::ssl::stream<asio::ip::tcp::socket> sock(io_service, context);
- * @endcode
- *
- * @par Concepts:
- * AsyncReadStream, AsyncWriteStream, Stream, SyncRead_Stream, SyncWriteStream.
- */
-template <typename Stream, typename Service = old::stream_service>
-class stream
- : public stream_base,
- private boost::noncopyable
-{
-public:
- /// The type of the next layer.
- typedef typename remove_reference<Stream>::type next_layer_type;
-
- /// The type of the lowest layer.
- typedef typename next_layer_type::lowest_layer_type lowest_layer_type;
-
- /// The type of the service that will be used to provide stream operations.
- typedef Service service_type;
-
- /// The native implementation type of the stream.
- typedef typename service_type::impl_type impl_type;
-
- /// Construct a stream.
- /**
- * This constructor creates a stream and initialises the underlying stream
- * object.
- *
- * @param arg The argument to be passed to initialise the underlying stream.
- *
- * @param context The SSL context to be used for the stream.
- */
- template <typename Arg, typename Context_Service>
- explicit stream(Arg& arg, basic_context<Context_Service>& context)
- : next_layer_(arg),
- service_(asio::use_service<Service>(next_layer_.get_io_service())),
- impl_(service_.null())
- {
- service_.create(impl_, next_layer_, context);
- }
-
- /// Destructor.
- ~stream()
- {
- service_.destroy(impl_, next_layer_);
- }
-
- /// Get the io_service associated with the object.
- /**
- * This function may be used to obtain the io_service object that the stream
- * uses to dispatch handlers for asynchronous operations.
- *
- * @return A reference to the io_service object that stream will use to
- * dispatch handlers. Ownership is not transferred to the caller.
- */
- asio::io_service& get_io_service()
- {
- return next_layer_.get_io_service();
- }
-
- /// Get a reference to the next layer.
- /**
- * This function returns a reference to the next layer in a stack of stream
- * layers.
- *
- * @return A reference to the next layer in the stack of stream layers.
- * Ownership is not transferred to the caller.
- */
- next_layer_type& next_layer()
- {
- return next_layer_;
- }
-
- /// Get a reference to the lowest layer.
- /**
- * This function returns a reference to the lowest layer in a stack of
- * stream layers.
- *
- * @return A reference to the lowest layer in the stack of stream layers.
- * Ownership is not transferred to the caller.
- */
- lowest_layer_type& lowest_layer()
- {
- return next_layer_.lowest_layer();
- }
-
- /// Get a const reference to the lowest layer.
- /**
- * This function returns a const reference to the lowest layer in a stack of
- * stream layers.
- *
- * @return A const reference to the lowest layer in the stack of stream
- * layers. Ownership is not transferred to the caller.
- */
- const lowest_layer_type& lowest_layer() const
- {
- return next_layer_.lowest_layer();
- }
-
- /// Get the underlying implementation in the native type.
- /**
- * This function may be used to obtain the underlying implementation of the
- * context. This is intended to allow access to stream functionality that is
- * not otherwise provided.
- */
- impl_type impl()
- {
- return impl_;
- }
-
- /// Perform SSL handshaking.
- /**
- * This function is used to perform SSL handshaking on the stream. The
- * function call will block until handshaking is complete or an error occurs.
- *
- * @param type The type of handshaking to be performed, i.e. as a client or as
- * a server.
- *
- * @throws asio::system_error Thrown on failure.
- */
- void handshake(handshake_type type)
- {
- asio::error_code ec;
- service_.handshake(impl_, next_layer_, type, ec);
- asio::detail::throw_error(ec);
- }
-
- /// Perform SSL handshaking.
- /**
- * This function is used to perform SSL handshaking on the stream. The
- * function call will block until handshaking is complete or an error occurs.
- *
- * @param type The type of handshaking to be performed, i.e. as a client or as
- * a server.
- *
- * @param ec Set to indicate what error occurred, if any.
- */
- asio::error_code handshake(handshake_type type,
- asio::error_code& ec)
- {
- return service_.handshake(impl_, next_layer_, type, ec);
- }
-
- /// Start an asynchronous SSL handshake.
- /**
- * This function is used to asynchronously perform an SSL handshake on the
- * stream. This function call always returns immediately.
- *
- * @param type The type of handshaking to be performed, i.e. as a client or as
- * a server.
- *
- * @param handler The handler to be called when the handshake operation
- * completes. Copies will be made of the handler as required. The equivalent
- * function signature of the handler must be:
- * @code void handler(
- * const asio::error_code& error // Result of operation.
- * ); @endcode
- */
- template <typename HandshakeHandler>
- void async_handshake(handshake_type type, HandshakeHandler handler)
- {
- service_.async_handshake(impl_, next_layer_, type, handler);
- }
-
- /// Shut down SSL on the stream.
- /**
- * This function is used to shut down SSL on the stream. The function call
- * will block until SSL has been shut down or an error occurs.
- *
- * @throws asio::system_error Thrown on failure.
- */
- void shutdown()
- {
- asio::error_code ec;
- service_.shutdown(impl_, next_layer_, ec);
- asio::detail::throw_error(ec);
- }
-
- /// Shut down SSL on the stream.
- /**
- * This function is used to shut down SSL on the stream. The function call
- * will block until SSL has been shut down or an error occurs.
- *
- * @param ec Set to indicate what error occurred, if any.
- */
- asio::error_code shutdown(asio::error_code& ec)
- {
- return service_.shutdown(impl_, next_layer_, ec);
- }
-
- /// Asynchronously shut down SSL on the stream.
- /**
- * This function is used to asynchronously shut down SSL on the stream. This
- * function call always returns immediately.
- *
- * @param handler The handler to be called when the handshake operation
- * completes. Copies will be made of the handler as required. The equivalent
- * function signature of the handler must be:
- * @code void handler(
- * const asio::error_code& error // Result of operation.
- * ); @endcode
- */
- template <typename ShutdownHandler>
- void async_shutdown(ShutdownHandler handler)
- {
- service_.async_shutdown(impl_, next_layer_, handler);
- }
-
- /// Write some data to the stream.
- /**
- * This function is used to write data on the stream. The function call will
- * block until one or more bytes of data has been written successfully, or
- * until an error occurs.
- *
- * @param buffers The data to be written.
- *
- * @returns The number of bytes written.
- *
- * @throws asio::system_error Thrown on failure.
- *
- * @note The write_some operation may not transmit all of the data to the
- * peer. Consider using the @ref write function if you need to ensure that all
- * data is written before the blocking operation completes.
- */
- template <typename ConstBufferSequence>
- std::size_t write_some(const ConstBufferSequence& buffers)
- {
- asio::error_code ec;
- std::size_t s = service_.write_some(impl_, next_layer_, buffers, ec);
- asio::detail::throw_error(ec);
- return s;
- }
-
- /// Write some data to the stream.
- /**
- * This function is used to write data on the stream. The function call will
- * block until one or more bytes of data has been written successfully, or
- * until an error occurs.
- *
- * @param buffers The data to be written to the stream.
- *
- * @param ec Set to indicate what error occurred, if any.
- *
- * @returns The number of bytes written. Returns 0 if an error occurred.
- *
- * @note The write_some operation may not transmit all of the data to the
- * peer. Consider using the @ref write function if you need to ensure that all
- * data is written before the blocking operation completes.
- */
- template <typename ConstBufferSequence>
- std::size_t write_some(const ConstBufferSequence& buffers,
- asio::error_code& ec)
- {
- return service_.write_some(impl_, next_layer_, buffers, ec);
- }
-
- /// Start an asynchronous write.
- /**
- * This function is used to asynchronously write one or more bytes of data to
- * the stream. The function call always returns immediately.
- *
- * @param buffers The data to be written to the stream. Although the buffers
- * object may be copied as necessary, ownership of the underlying buffers is
- * retained by the caller, which must guarantee that they remain valid until
- * the handler is called.
- *
- * @param handler The handler to be called when the write operation completes.
- * Copies will be made of the handler as required. The equivalent function
- * signature of the handler must be:
- * @code void handler(
- * const asio::error_code& error, // Result of operation.
- * std::size_t bytes_transferred // Number of bytes written.
- * ); @endcode
- *
- * @note The async_write_some operation may not transmit all of the data to
- * the peer. Consider using the @ref async_write function if you need to
- * ensure that all data is written before the blocking operation completes.
- */
- template <typename ConstBufferSequence, typename WriteHandler>
- void async_write_some(const ConstBufferSequence& buffers,
- WriteHandler handler)
- {
- service_.async_write_some(impl_, next_layer_, buffers, handler);
- }
-
- /// Read some data from the stream.
- /**
- * This function is used to read data from the stream. The function call will
- * block until one or more bytes of data has been read successfully, or until
- * an error occurs.
- *
- * @param buffers The buffers into which the data will be read.
- *
- * @returns The number of bytes read.
- *
- * @throws asio::system_error Thrown on failure.
- *
- * @note The read_some operation may not read all of the requested number of
- * bytes. Consider using the @ref read function if you need to ensure that the
- * requested amount of data is read before the blocking operation completes.
- */
- template <typename MutableBufferSequence>
- std::size_t read_some(const MutableBufferSequence& buffers)
- {
- asio::error_code ec;
- std::size_t s = service_.read_some(impl_, next_layer_, buffers, ec);
- asio::detail::throw_error(ec);
- return s;
- }
-
- /// Read some data from the stream.
- /**
- * This function is used to read data from the stream. The function call will
- * block until one or more bytes of data has been read successfully, or until
- * an error occurs.
- *
- * @param buffers The buffers into which the data will be read.
- *
- * @param ec Set to indicate what error occurred, if any.
- *
- * @returns The number of bytes read. Returns 0 if an error occurred.
- *
- * @note The read_some operation may not read all of the requested number of
- * bytes. Consider using the @ref read function if you need to ensure that the
- * requested amount of data is read before the blocking operation completes.
- */
- template <typename MutableBufferSequence>
- std::size_t read_some(const MutableBufferSequence& buffers,
- asio::error_code& ec)
- {
- return service_.read_some(impl_, next_layer_, buffers, ec);
- }
-
- /// Start an asynchronous read.
- /**
- * This function is used to asynchronously read one or more bytes of data from
- * the stream. The function call always returns immediately.
- *
- * @param buffers The buffers into which the data will be read. Although the
- * buffers object may be copied as necessary, ownership of the underlying
- * buffers is retained by the caller, which must guarantee that they remain
- * valid until the handler is called.
- *
- * @param handler The handler to be called when the read operation completes.
- * Copies will be made of the handler as required. The equivalent function
- * signature of the handler must be:
- * @code void handler(
- * const asio::error_code& error, // Result of operation.
- * std::size_t bytes_transferred // Number of bytes read.
- * ); @endcode
- *
- * @note The async_read_some operation may not read all of the requested
- * number of bytes. Consider using the @ref async_read function if you need to
- * ensure that the requested amount of data is read before the asynchronous
- * operation completes.
- */
- template <typename MutableBufferSequence, typename ReadHandler>
- void async_read_some(const MutableBufferSequence& buffers,
- ReadHandler handler)
- {
- service_.async_read_some(impl_, next_layer_, buffers, handler);
- }
-
- /// Peek at the incoming data on the stream.
- /**
- * This function is used to peek at the incoming data on the stream, without
- * removing it from the input queue. The function call will block until data
- * has been read successfully or an error occurs.
- *
- * @param buffers The buffers into which the data will be read.
- *
- * @returns The number of bytes read.
- *
- * @throws asio::system_error Thrown on failure.
- */
- template <typename MutableBufferSequence>
- std::size_t peek(const MutableBufferSequence& buffers)
- {
- asio::error_code ec;
- std::size_t s = service_.peek(impl_, next_layer_, buffers, ec);
- asio::detail::throw_error(ec);
- return s;
- }
-
- /// Peek at the incoming data on the stream.
- /**
- * This function is used to peek at the incoming data on the stream, withoutxi
- * removing it from the input queue. The function call will block until data
- * has been read successfully or an error occurs.
- *
- * @param buffers The buffers into which the data will be read.
- *
- * @param ec Set to indicate what error occurred, if any.
- *
- * @returns The number of bytes read. Returns 0 if an error occurred.
- */
- template <typename MutableBufferSequence>
- std::size_t peek(const MutableBufferSequence& buffers,
- asio::error_code& ec)
- {
- return service_.peek(impl_, next_layer_, buffers, ec);
- }
-
- /// Determine the amount of data that may be read without blocking.
- /**
- * This function is used to determine the amount of data, in bytes, that may
- * be read from the stream without blocking.
- *
- * @returns The number of bytes of data that can be read without blocking.
- *
- * @throws asio::system_error Thrown on failure.
- */
- std::size_t in_avail()
- {
- asio::error_code ec;
- std::size_t s = service_.in_avail(impl_, next_layer_, ec);
- asio::detail::throw_error(ec);
- return s;
- }
-
- /// Determine the amount of data that may be read without blocking.
- /**
- * This function is used to determine the amount of data, in bytes, that may
- * be read from the stream without blocking.
- *
- * @param ec Set to indicate what error occurred, if any.
- *
- * @returns The number of bytes of data that can be read without blocking.
- */
- std::size_t in_avail(asio::error_code& ec)
- {
- return service_.in_avail(impl_, next_layer_, ec);
- }
-
-private:
- /// The next layer.
- Stream next_layer_;
-
- /// The backend service implementation.
- service_type& service_;
-
- /// The underlying native implementation.
- impl_type impl_;
-};
-
-} // namespace old
-} // namespace ssl
-} // namespace asio
-
-#include "asio/detail/pop_options.hpp"
-
-#endif // ASIO_SSL_OLD_STREAM_HPP
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4cd3b992/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/stream_service.hpp
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/stream_service.hpp b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/stream_service.hpp
deleted file mode 100644
index 2c3c442..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/old/stream_service.hpp
+++ /dev/null
@@ -1,184 +0,0 @@
-//
-// ssl/old/stream_service.hpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#ifndef ASIO_SSL_OLD_STREAM_SERVICE_HPP
-#define ASIO_SSL_OLD_STREAM_SERVICE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
-
-#include "asio/detail/config.hpp"
-#include <cstddef>
-#include <boost/noncopyable.hpp>
-#include "asio/io_service.hpp"
-#include "asio/ssl/basic_context.hpp"
-#include "asio/ssl/old/detail/openssl_stream_service.hpp"
-#include "asio/ssl/stream_base.hpp"
-
-#include "asio/detail/push_options.hpp"
-
-namespace asio {
-namespace ssl {
-namespace old {
-
-/// Default service implementation for an SSL stream.
-class stream_service
-#if defined(GENERATING_DOCUMENTATION)
- : public asio::io_service::service
-#else
- : public asio::detail::service_base<stream_service>
-#endif
-{
-private:
- // The type of the platform-specific implementation.
- typedef old::detail::openssl_stream_service service_impl_type;
-
-public:
-#if defined(GENERATING_DOCUMENTATION)
- /// The unique service identifier.
- static asio::io_service::id id;
-#endif
-
- /// The type of a stream implementation.
-#if defined(GENERATING_DOCUMENTATION)
- typedef implementation_defined impl_type;
-#else
- typedef service_impl_type::impl_type impl_type;
-#endif
-
- /// Construct a new stream service for the specified io_service.
- explicit stream_service(asio::io_service& io_service)
- : asio::detail::service_base<stream_service>(io_service),
- service_impl_(asio::use_service<service_impl_type>(io_service))
- {
- }
-
- /// Return a null stream implementation.
- impl_type null() const
- {
- return service_impl_.null();
- }
-
- /// Create a new stream implementation.
- template <typename Stream, typename Context_Service>
- void create(impl_type& impl, Stream& next_layer,
- basic_context<Context_Service>& context)
- {
- service_impl_.create(impl, next_layer, context);
- }
-
- /// Destroy a stream implementation.
- template <typename Stream>
- void destroy(impl_type& impl, Stream& next_layer)
- {
- service_impl_.destroy(impl, next_layer);
- }
-
- /// Perform SSL handshaking.
- template <typename Stream>
- asio::error_code handshake(impl_type& impl, Stream& next_layer,
- stream_base::handshake_type type, asio::error_code& ec)
- {
- return service_impl_.handshake(impl, next_layer, type, ec);
- }
-
- /// Start an asynchronous SSL handshake.
- template <typename Stream, typename HandshakeHandler>
- void async_handshake(impl_type& impl, Stream& next_layer,
- stream_base::handshake_type type, HandshakeHandler handler)
- {
- service_impl_.async_handshake(impl, next_layer, type, handler);
- }
-
- /// Shut down SSL on the stream.
- template <typename Stream>
- asio::error_code shutdown(impl_type& impl, Stream& next_layer,
- asio::error_code& ec)
- {
- return service_impl_.shutdown(impl, next_layer, ec);
- }
-
- /// Asynchronously shut down SSL on the stream.
- template <typename Stream, typename ShutdownHandler>
- void async_shutdown(impl_type& impl, Stream& next_layer,
- ShutdownHandler handler)
- {
- service_impl_.async_shutdown(impl, next_layer, handler);
- }
-
- /// Write some data to the stream.
- template <typename Stream, typename ConstBufferSequence>
- std::size_t write_some(impl_type& impl, Stream& next_layer,
- const ConstBufferSequence& buffers, asio::error_code& ec)
- {
- return service_impl_.write_some(impl, next_layer, buffers, ec);
- }
-
- /// Start an asynchronous write.
- template <typename Stream, typename ConstBufferSequence,
- typename WriteHandler>
- void async_write_some(impl_type& impl, Stream& next_layer,
- const ConstBufferSequence& buffers, WriteHandler handler)
- {
- service_impl_.async_write_some(impl, next_layer, buffers, handler);
- }
-
- /// Read some data from the stream.
- template <typename Stream, typename MutableBufferSequence>
- std::size_t read_some(impl_type& impl, Stream& next_layer,
- const MutableBufferSequence& buffers, asio::error_code& ec)
- {
- return service_impl_.read_some(impl, next_layer, buffers, ec);
- }
-
- /// Start an asynchronous read.
- template <typename Stream, typename MutableBufferSequence,
- typename ReadHandler>
- void async_read_some(impl_type& impl, Stream& next_layer,
- const MutableBufferSequence& buffers, ReadHandler handler)
- {
- service_impl_.async_read_some(impl, next_layer, buffers, handler);
- }
-
- /// Peek at the incoming data on the stream.
- template <typename Stream, typename MutableBufferSequence>
- std::size_t peek(impl_type& impl, Stream& next_layer,
- const MutableBufferSequence& buffers, asio::error_code& ec)
- {
- return service_impl_.peek(impl, next_layer, buffers, ec);
- }
-
- /// Determine the amount of data that may be read without blocking.
- template <typename Stream>
- std::size_t in_avail(impl_type& impl, Stream& next_layer,
- asio::error_code& ec)
- {
- return service_impl_.in_avail(impl, next_layer, ec);
- }
-
-private:
- // Destroy all user-defined handler objects owned by the service.
- void shutdown_service()
- {
- }
-
- // The service that provides the platform-specific implementation.
- service_impl_type& service_impl_;
-};
-
-} // namespace old
-} // namespace ssl
-} // namespace asio
-
-#include "asio/detail/pop_options.hpp"
-
-#endif // ASIO_SSL_OLD_STREAM_SERVICE_HPP
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4cd3b992/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/rfc2818_verification.hpp
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/rfc2818_verification.hpp b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/rfc2818_verification.hpp
deleted file mode 100644
index acadfaa..0000000
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/native/libhdfspp/third_party/asio-1.10.2/include/asio/ssl/rfc2818_verification.hpp
+++ /dev/null
@@ -1,100 +0,0 @@
-//
-// ssl/rfc2818_verification.hpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#ifndef ASIO_SSL_RFC2818_VERIFICATION_HPP
-#define ASIO_SSL_RFC2818_VERIFICATION_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
-
-#include "asio/detail/config.hpp"
-
-#if !defined(ASIO_ENABLE_OLD_SSL)
-# include <string>
-# include "asio/ssl/detail/openssl_types.hpp"
-# include "asio/ssl/verify_context.hpp"
-#endif // !defined(ASIO_ENABLE_OLD_SSL)
-
-#include "asio/detail/push_options.hpp"
-
-namespace asio {
-namespace ssl {
-
-#if !defined(ASIO_ENABLE_OLD_SSL)
-
-/// Verifies a certificate against a hostname according to the rules described
-/// in RFC 2818.
-/**
- * @par Example
- * The following example shows how to synchronously open a secure connection to
- * a given host name:
- * @code
- * using asio::ip::tcp;
- * namespace ssl = asio::ssl;
- * typedef ssl::stream<tcp::socket> ssl_socket;
- *
- * // Create a context that uses the default paths for finding CA certificates.
- * ssl::context ctx(ssl::context::sslv23);
- * ctx.set_default_verify_paths();
- *
- * // Open a socket and connect it to the remote host.
- * asio::io_service io_service;
- * ssl_socket sock(io_service, ctx);
- * tcp::resolver resolver(io_service);
- * tcp::resolver::query query("host.name", "https");
- * asio::connect(sock.lowest_layer(), resolver.resolve(query));
- * sock.lowest_layer().set_option(tcp::no_delay(true));
- *
- * // Perform SSL handshake and verify the remote host's certificate.
- * sock.set_verify_mode(ssl::verify_peer);
- * sock.set_verify_callback(ssl::rfc2818_verification("host.name"));
- * sock.handshake(ssl_socket::client);
- *
- * // ... read and write as normal ...
- * @endcode
- */
-class rfc2818_verification
-{
-public:
- /// The type of the function object's result.
- typedef bool result_type;
-
- /// Constructor.
- explicit rfc2818_verification(const std::string& host)
- : host_(host)
- {
- }
-
- /// Perform certificate verification.
- ASIO_DECL bool operator()(bool preverified, verify_context& ctx) const;
-
-private:
- // Helper function to check a host name against a pattern.
- ASIO_DECL static bool match_pattern(const char* pattern,
- std::size_t pattern_length, const char* host);
-
- // Helper function to check a host name against an IPv4 address
- // The host name to be checked.
- std::string host_;
-};
-
-#endif // defined(ASIO_ENABLE_OLD_SSL)
-
-} // namespace ssl
-} // namespace asio
-
-#include "asio/detail/pop_options.hpp"
-
-#if defined(ASIO_HEADER_ONLY)
-# include "asio/ssl/impl/rfc2818_verification.ipp"
-#endif // defined(ASIO_HEADER_ONLY)
-
-#endif // ASIO_SSL_RFC2818_VERIFICATION_HPP