-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/71665/
-----------------------------------------------------------
(Updated Oct. 30, 2019, 6:33 p.m.)
Review request for mesos, Benno Evers, Benjamin Mahler, Greg Mann, and Till
Toenshoff.
Changes
-------
Factored out the handshake handling loop since it can be shared among a bunch
of different `SSL_*` methods. And while I was at it, pulled in the code to
implement `accept()` as well as `connect()`.
Summary (updated)
-----------------
SSL Wrapper: Implemented socket connection and handshake.
Bugs: MESOS-10010
https://issues.apache.org/jira/browse/MESOS-10010
Repository: mesos
Description (updated)
-------
This fills in some of the SSL socket implementation,
in particular the constructor, destructor, connect(),
and accept() methods.
Much of the setup and verification is taken verbatim from the
libevent socket implementation.
Diffs (updated)
-----
3rdparty/libprocess/include/process/socket.hpp
48860f8646d388685f0a60ad2a2f613b1f4be61a
3rdparty/libprocess/src/ssl/socket_wrapper.hpp PRE-CREATION
3rdparty/libprocess/src/ssl/socket_wrapper.cpp PRE-CREATION
Diff: https://reviews.apache.org/r/71665/diff/2/
Changes: https://reviews.apache.org/r/71665/diff/1-2/
Testing
-------
cmake --build . --target libprocess-tests
Successfully connected to Google :D
With something like this:
```
set_environment_variables({
{"LIBPROCESS_SSL_ENABLED", "true"},
{"LIBPROCESS_SSL_KEY_FILE", key_path().string()},
{"LIBPROCESS_SSL_CERT_FILE", certificate_path().string()}
});
Try<Socket> client = Socket::create(SocketImpl::Kind::SSL);
ASSERT_SOME(client);
AWAIT_ASSERT_READY(client->connect(
network::inet::Address(net::IP::parse("216.58.194.206").get(), 443),
openssl::create_tls_client_config(None())));
```
Thanks,
Joseph Wu