Whilst receiving data, the SSL socket would not return if the remote socket disconnected, leading to it blocking indefinitely.
Whilst sending enough data to require multiple writes, the socket would disconnect instead of sending more. This has also been fixed.
Send/Recv often needs to be called multiple times to transfer all of the data. send_raw/receive_raw are now mutex protected and so both send & receive can be called simultaneously.
Sockets will immediately return fr::Socket::Status::Disconnected if an attempt to send/receive data is made whilst the connection is closed.
Added SocketReactor, which is effectively a little wrapper around fr::SocketSelector, but can automatically call a callback for a socket when data is received on it.
You can now accept SSL connections using SSLListeners, and then send/receive data through the associated SSLSocket.
HttpSocket's now support both HTTP and HTTPS, using templates:
fr::HttpSocket<fr::SSLSocket> https_socket;
fr::HttpSocket<fr::TcpSocket> http_socket;