Benjamin Sergeant
932bb732e0
Feature/send large message ( #14 )
...
* introduce send fragment
* can pass a fin frame
* can send messages which are a perfect multiple of the chunk size
* set fin only for last fragment
* cleanup
* last fragment should be of type CONTINUATION
* Add simple send and receive programs
* speedups receiving + better way to wait for thing
* receive speedup by using linked list of chunks instead of large array
* document bug
* use chunks to receive data
* trailing spaces
2019-02-20 18:59:07 -08:00
Benjamin Sergeant
726e66ca66
unittest for sending large messages
2019-02-16 10:32:02 -08:00
Benjamin Sergeant
8983dd97a1
use dynamically generated port number to configure servers in unittest
2019-01-28 15:24:19 -08:00
Benjamin Sergeant
907605c59c
windows build fix
2019-01-27 10:46:02 -08:00
Benjamin Sergeant
58921592c8
constexpr to declare number of fds
2019-01-26 21:01:36 -08:00
Benjamin Sergeant
b9c49c38ed
linux fix
2019-01-26 20:57:48 -08:00
Benjamin Sergeant
76c97027c8
remove shutdown call
2019-01-26 20:54:23 -08:00
Benjamin Sergeant
5db3620f49
rebase poll branch
2019-01-26 20:50:25 -08:00
Benjamin Sergeant
a2e6fa0b16
insensitive string compare when validating server connection header
2019-01-25 16:17:51 -08:00
Benjamin Sergeant
885d245afb
heartbeat correct
2019-01-25 16:11:39 -08:00
Benjamin Sergeant
75d01c0c11
close server socket on exit
2019-01-24 21:16:32 -08:00
Benjamin Sergeant
a8b6573f96
hearbeat
2019-01-24 12:42:49 -08:00
Benjamin Sergeant
121c84a2d1
check and validate the Connection: Upgrade header in client/server
2019-01-15 09:31:37 -08:00
Tony Lin
2434605c06
Fix missing upgrade header error
2019-01-15 15:35:37 +08:00
Benjamin Sergeant
a0f15bfb56
C++14 + use make_unique and make_shared to make shared pointers
2019-01-11 21:25:06 -08:00
Benjamin Sergeant
8a0afef825
check select errors better
2019-01-07 11:18:00 -08:00
Benjamin Sergeant
bf3e8195f7
DNSLookup _id member does not need to be an atomic
2019-01-06 18:32:19 -08:00
Benjamin Sergeant
bce3071a12
DNSLookup: fix #8
2019-01-06 18:27:26 -08:00
Benjamin Sergeant
911f684e4d
DNSLookup: copy hostname and port instead of accessing member
2019-01-06 18:17:12 -08:00
Benjamin Sergeant
49bc156a56
return false -> return -1
2019-01-06 18:10:39 -08:00
Benjamin Sergeant
372af54e46
remove dead file
2019-01-06 14:26:11 -08:00
Benjamin Sergeant
2f9ad54bae
gcc linux compile fix
2019-01-06 12:12:39 -08:00
Benjamin Sergeant
57c22cddb8
make a class hierarchy for server code (IXWebSocketServer <- IXSocketServer)
2019-01-06 12:09:31 -08:00
Benjamin Sergeant
60dc765178
unittest + compiler warnings
2019-01-05 21:10:08 -08:00
Benjamin Sergeant
5e1c150024
windows compile fix
2019-01-05 21:02:55 -08:00
Benjamin Sergeant
0fd06bb592
int -> ssize_t for socker recv and send
2019-01-05 20:53:50 -08:00
Benjamin Sergeant
9641c8cf49
header refactoring
2019-01-05 20:38:43 -08:00
Benjamin Sergeant
4ca31be4a2
windows connect (compile fix)
2019-01-05 17:35:50 -08:00
Benjamin Sergeant
667f18cbfe
windows connect potential fix
2019-01-05 17:32:21 -08:00
Benjamin Sergeant
4df5050760
more accurate description of errors
2019-01-05 17:18:43 -08:00
Benjamin Sergeant
b80696af00
windows (compile) fix
2019-01-05 17:04:09 -08:00
Benjamin Sergeant
3cb2f6dcf7
windows fix
2019-01-05 17:02:39 -08:00
Benjamin Sergeant
89ff9dd5ac
fix gcc warning
2019-01-05 16:26:11 -08:00
Benjamin Sergeant
e892b21872
openssl cleanup
2019-01-05 11:42:25 -08:00
Benjamin Sergeant
3eef8fba27
unittest on appveyor
2019-01-04 17:28:13 -08:00
Benjamin Sergeant
cc43357fb4
Socket::readLine works with arbitrary long lines
2019-01-03 18:47:01 -08:00
Benjamin Sergeant
bce5ef2dca
timeout is configurable
2019-01-03 18:33:08 -08:00
Benjamin Sergeant
3021ac4b95
remove useless FIXME comment
2019-01-03 18:02:03 -08:00
Benjamin Sergeant
bd1c8873d0
capture path/uri when connecting, and pass it back through callbacks in the openInfo member
2019-01-03 17:44:10 -08:00
Benjamin Sergeant
6ac3bdb94a
implement a max connections (default = 32) settings
2019-01-03 17:05:44 -08:00
Benjamin Sergeant
e964a0a1f0
correct validation of the request (request line + headers)
2019-01-03 13:41:06 -08:00
Benjamin Sergeant
97255fbd62
cancellation refactoring
2019-01-03 12:53:44 -08:00
Benjamin Sergeant
64f649d1f9
split handshake code into its own files, so that Transport file is less massive
2019-01-02 20:07:54 -08:00
Benjamin Sergeant
097c7e5397
server unittest for validating client request / new timeout cancellation handling (need refactoring)
2019-01-02 16:08:32 -08:00
Benjamin Sergeant
b1710bfa31
server per message deflate support
2019-01-02 08:12:29 -08:00
Benjamin Sergeant
2b136b2981
refactoring + cancellation was buggy during http upgrade
2019-01-02 07:45:07 -08:00
Benjamin Sergeant
b95e5e36dc
use select to detect new incoming connections
2019-01-01 22:21:07 -08:00
Benjamin Sergeant
1bc5bc7f1c
add a way to run in blocking more, which is useful for server mode to have N*thread instead of 2N*thread for N connections
2019-01-01 21:25:15 -08:00
Benjamin Sergeant
946d7015a2
more named constants
2019-01-01 19:23:27 -08:00
Benjamin Sergeant
973a3f03c3
linux fix + unittest works with Linux
2019-01-01 17:13:26 -08:00