21 Commits

Author SHA1 Message Date
Cloaked9000
15d20388c1 Added more type support to fr::Packet
Added std::pair<> support.

Added enum/enum class support
2017-01-27 15:36:36 +00:00
Fred Nicolson
fad7d0b81f Packet and socket optimisations
Sending/receiving data on a socket is roughly 5.5x faster, after removing data copies and buffer re-allocations.
2017-01-25 22:57:11 +00:00
Fred Nicolson
8638b70fb8 Thread safety for send/receive on both Tcp & SSL sockets
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.
2016-12-23 18:23:25 +00:00
Cloaked9000
2de9540819 Added windows support. Updated build system.
CMake build system builds as a library, not an executable now.

Windows is now supported and should work fine.
2016-12-19 12:10:39 +00:00
Fred Nicolson
9479029c87 Improved CMake build system. Updated readme.
The CMake build system now uses a relative path for modules, and supports a 'USE_SSL' option to optionally link in mbedtls and enable SSL support.

The readme now provides SSL examples.
2016-12-16 22:34:36 +00:00
Cloaked9000
8c94c337e9 SSL Contexts are now shared between sockets 2016-12-16 14:55:41 +00:00
Cloaked9000
509b37095f Added support for passing SSL cert info to listener 2016-12-15 17:59:39 +00:00
Cloaked9000
7d3e0fe5c8 Bug fixes & updated SocketSelector example. 2016-12-15 15:47:19 +00:00
Cloaked9000
69d183ed18 Code refactoring 2016-12-15 14:57:01 +00:00
Cloaked9000
14fccb84c9 More work on SSL support.
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;
2016-12-15 12:29:23 +00:00
Cloaked9000
51291e2cc3 More experimental SSL code
Added SSLSocket, which can actually send/receive encrypted data.

Started adding SSLListener. It doesn't fully work yet.
2016-12-13 18:03:56 +00:00
Cloaked9000
7e9f007acd TLS Test Code 2016-12-12 18:03:27 +00:00
Fred Nicolson
91921867fa Updated send/receive documentation. Updated readme. 2016-12-11 20:54:31 +00:00
Fred Nicolson
98897dec02 Cleaned up HTTP socket/request code. 2016-12-11 12:14:47 +00:00
Fred Nicolson
fdee42e300 Added ability to both send AND receive HTTP requests and responses. 2016-12-10 16:50:02 +00:00
Fred Nicolson
7aced77a00 Added support for sending and receiving HTTP requests.
Added 'HttpSocket', which inherits TcpSocket and adds a receive and send functions for WebRequest objects.

WebRequest objects can be used to parse, construct and extract HTTP requests. They can be sent through HttpSocket's.
2016-12-10 15:11:01 +00:00
Fred Nicolson
a3eb2ccd0a Added raw send and receive. Fixed TcpSocket close bug.
Can now send and receive raw data over TcpSockets for communicating with other protocols, such as HTTP.

Fixed TcpSocket::close only calling close() if the connection isn't open (gg wp)
2016-12-10 12:59:07 +00:00
Fred Nicolson
b581418f2e Added support for blocking on multiple sockets simultaneously 2016-12-09 23:52:16 +00:00
Fred Nicolson
9cbe2aa8e8 Fixed some dumb bugs. Think I may have been asleep for last push. 2016-12-09 22:04:37 +00:00
Cloaked9000
d36a98b9b2 Send/Receive works on TcpSocket now 2016-12-09 16:55:53 +00:00
Fred Nicolson
4f9502df23 Pushed code across 2016-12-06 23:07:54 +00:00