[ 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)