You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Greg Mann (Jira)" <ji...@apache.org> on 2019/10/16 18:51:00 UTC

[jira] [Commented] (MESOS-10010) Implement an SSL socket for Windows, using OpenSSL directly

    [ https://issues.apache.org/jira/browse/MESOS-10010?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16953103#comment-16953103 ] 

Greg Mann commented on MESOS-10010:
-----------------------------------

[~kaysoky] I think this should be more fine-grained, will this really complete in a single sprint?

> Implement an SSL socket for Windows, using OpenSSL directly
> -----------------------------------------------------------
>
>                 Key: MESOS-10010
>                 URL: https://issues.apache.org/jira/browse/MESOS-10010
>             Project: Mesos
>          Issue Type: Task
>          Components: libprocess
>            Reporter: Joseph Wu
>            Assignee: Joseph Wu
>            Priority: Major
>              Labels: foundations
>
> {code}
> class WindowsSSLSocketImpl : public SocketImpl
> {
> public:
>   // This will be the entry point for Socket::create(SSL).
>   static Try<std::shared_ptr<SocketImpl>> create(int_fd s);
>   WindowsSSLSocketImpl(int_fd _s);
>   ~WindowsSSLSocketImpl() override;
>   // Overrides for the 'SocketImpl' interface below.
>   // Unreachable.
>   Future<Nothing> connect(const Address& address) override;
>   // This will initialize SSL objects then call windows::connect()
>   // and chain that onto the appropriate call to SSL_do_handshake.
>   Future<Nothing> connect(
>       const Address& address,
>       const openssl::TLSClientConfig& config) override;
>   // These will call SSL_read or SSL_write as appropriate.
>   // As long as the SSL context is set up correctly, these will be
>   // thin wrappers.  (More details after the code block.)
>   Future<size_t> recv(char* data, size_t size) override;
>   Future<size_t> send(const char* data, size_t size) override;
>   Future<size_t> sendfile(int_fd fd, off_t offset, size_t size) override;
>   // Nothing SSL here, just a plain old listener.
>   Try<Nothing> listen(int backlog) override;
>   // This will initialize SSL objects then call windows::accept()
>   // and then perform handshaking.  Any downgrading will
>   // happen here.  Since we control the event loop, we can
>   // easily peek at the first few bytes to check SSL-ness.
>   Future<std::shared_ptr<SocketImpl>> accept() override;
>   SocketImpl::Kind kind() const override { return SocketImpl::Kind::SSL; }
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)