Benjamin Sergeant
e853d9ac60
build fixes
2019-09-10 14:05:07 -07:00
Benjamin Sergeant
4ec0d9b113
update appveyor file to new directory structure
2019-09-10 12:33:47 -07:00
Benjamin Sergeant
0fde169aa4
restructure project
2019-09-10 12:19:22 -07:00
Benjamin Sergeant
c09015e870
update ws CLI11 (our command line argument parsing library) to the latest, which fix a compiler bug about optional
2019-09-09 21:25:33 -07:00
Benjamin Sergeant
7bfa6e8478
improve some websocket error messages + add a utility function with unittest to parse status line and stop using scanf which triggers warnings on Windows
2019-09-09 21:23:57 -07:00
Benjamin Sergeant
983df2d8f9
improve some websocket error messages + add a utility function with unittest to parse status line and stop using scanf which triggers warnings on Windows
2019-09-09 17:34:36 -07:00
Benjamin Sergeant
6beba16ca7
websocket and http server: server does not close the bound client socket in many cases
2019-09-09 16:48:26 -07:00
Benjamin Sergeant
48cefe5525
move poll wrapper on top of select (only used on Windows) to the ix namespace
2019-09-08 11:15:08 -07:00
Benjamin Sergeant
260a94d3b0
README: update link to the doc
2019-09-06 10:42:48 -07:00
Benjamin Sergeant
88c6d6c4cb
ci
2019-09-05 22:32:54 -07:00
Benjamin Sergeant
d5a4931c92
travis linux
2019-09-05 22:29:00 -07:00
Benjamin Sergeant
11f4e90bc6
ci tweak / install redis
2019-09-05 22:14:55 -07:00
Benjamin Sergeant
2ce65e7a77
cobra metrics publisher test uses random free port
2019-09-05 22:05:00 -07:00
Benjamin Sergeant
e81c2c3e5c
cobra chat test uses random free port
2019-09-05 22:02:10 -07:00
Benjamin Sergeant
e40dda7549
add cobra metrics publisher + server unittest
2019-09-05 21:57:05 -07:00
Benjamin Sergeant
d959d73261
Add new cobra unittest, using server and client
2019-09-05 20:49:58 -07:00
Benjamin Sergeant
07b7e37a92
snake unsubscription fixes
2019-09-05 20:47:15 -07:00
Benjamin Sergeant
eb7888347a
Fix compiler warning
2019-09-05 20:29:14 -07:00
Benjamin Sergeant
d8664f4988
ws snake (cobra simple server) add basic support for unsubscription + subscribe send the proper subscription data + redis client subscription can be cancelled
2019-09-05 20:28:34 -07:00
Benjamin Sergeant
5e94791b13
IXCobraConnection / pdu handlers can crash if they receive json data which is not an object
2019-09-05 20:24:42 -07:00
Benjamin Sergeant
3e3f7171fc
cobra publish fix
2019-09-05 14:31:28 -07:00
Benjamin Sergeant
66ed7577b1
all client autobahn test should pass ! last failing one was ...
...
+- zlib/deflate has a bug with windowsbits == 8, so we silently upgrade it to 9/ (fix autobahn test 13.X which uses 8 for the windows size)
2019-09-04 21:01:30 -07:00
Benjamin Sergeant
cae23c764f
Fragmentation: for sent messages which are compressed, the continuation fragments should not have the rsv1 bit set (fix all autobahn tests for zlib compression 12.X)
...
Websocket Server / do a case insensitive string search when looking for an Upgrade header whose value is websocket. (some client use WebSocket with some upper-case characters)
2019-09-04 18:23:56 -07:00
Benjamin Sergeant
f25b2af6eb
ws autobahn / use condition variables for stopping test case + add more logging on errors
2019-09-04 12:21:54 -07:00
Benjamin Sergeant
508d372df1
ws autobahn / report progress with spdlog::info to get timing info
2019-09-04 10:16:32 -07:00
Benjamin Sergeant
12c3275c36
truncate module
2019-09-03 20:14:35 -07:00
Benjamin Sergeant
98189c23dc
Per message deflate/compression: handle fragmented messages (fix autobahn test: 12.1.X and probably others)
2019-09-03 17:42:48 -07:00
Benjamin Sergeant
ec55b4a82a
Receiving invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling)
2019-09-03 16:07:48 -07:00
Benjamin Sergeant
5d58982f77
IXWebSocketTransport message processing refactoring
2019-09-03 15:48:55 -07:00
Benjamin Sergeant
57665ca825
Validate close codes. Autobahn 7.9.*
2019-09-03 15:43:16 -07:00
Benjamin Sergeant
deaa753657
Validate that the close reason is proper utf-8. Autobahn 7.5.1
2019-09-03 14:35:40 -07:00
Benjamin Sergeant
7c7c877621
Sending invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling)
2019-09-03 14:12:40 -07:00
Benjamin Sergeant
afa71a6b4b
Framentation: data and continuation blocks received out of order (fix autobahn test: 5.9 through 5.20 Fragmentation)
2019-09-03 12:02:56 -07:00
Benjamin Sergeant
172cd39702
Sending invalid UTF-8 TEXT message should fail and close the connection (fix **tons** of autobahn test: 6.X UTF-8 Handling)
2019-09-03 10:30:22 -07:00
Benjamin Sergeant
82213fd3a5
Message type (TEXT or BINARY) is invalid for received fragmented messages (fix autobahn test: 5.3 through 5.8 Fragmentation)
2019-09-03 09:13:38 -07:00
Benjamin Sergeant
a32bf885ba
bump version
2019-09-02 10:14:15 -07:00
Benjamin Sergeant
61eb662e5f
Ping and Pong messages cannot be fragmented (autobahn test: 5.1 and 5.2 Fragmentation)
2019-09-02 10:13:40 -07:00
Benjamin Sergeant
2887370666
Close connections when reserved bits are used (autobahn test: 3 Reserved Bits)
2019-09-01 16:23:00 -07:00
Benjamin Sergeant
8826d62075
changelog
2019-09-01 11:39:00 -07:00
Benjamin Sergeant
fae284e2e1
readme
2019-09-01 11:38:39 -07:00
Benjamin Sergeant
2408617ed9
doc
2019-09-01 11:28:27 -07:00
Benjamin Sergeant
cc10b7f998
compute test case count properly
2019-09-01 11:17:28 -07:00
Benjamin Sergeant
3c97d5f668
refactoring
2019-09-01 11:10:27 -07:00
Benjamin Sergeant
0accf24320
condition variable instead of busy looping
2019-09-01 10:50:16 -07:00
Benjamin Sergeant
8ec2ef345c
quiet mode
2019-09-01 10:45:51 -07:00
Benjamin Sergeant
10dbe2d44d
+add utf-8 validation code, not hooked up properly yet
...
+ws autobahn / Add code to test websocket client compliance with the autobahn test-suite
+Ping received with a payload too large (> 125 bytes) trigger a connection closure
+cobra / add tracking about published messages
+cobra / publish returns a message id, that can be used when
+cobra / new message type in the message received handler when publish/ok is received (can be used to implement an ack system).
2019-08-31 16:47:10 -07:00
Benjamin Sergeant
6b2cdb6b54
user agent
2019-08-30 12:50:56 -07:00
Benjamin Sergeant
239a08ff9b
readme
2019-08-26 22:49:40 -07:00
Benjamin Sergeant
41dd8d2184
readme
2019-08-26 22:29:10 -07:00
Benjamin Sergeant
57b4b13b65
doc / bring back detailed APIs
2019-08-26 22:11:35 -07:00
Benjamin Sergeant
a66b116aad
one last tweak
2019-08-26 22:02:24 -07:00
Benjamin Sergeant
5c4102c0be
readme tweaks
2019-08-26 21:57:05 -07:00
Benjamin Sergeant
ebb7318895
new simple readme
2019-08-26 21:55:00 -07:00
Benjamin Sergeant
b11876096b
Add md doc made with mkdocs
2019-08-26 21:25:45 -07:00
Benjamin Sergeant
d603a74c6f
fix #104 - change ZLIB find_package to be optional
2019-08-26 14:51:33 -07:00
Benjamin Sergeant
95d633e71e
tentative gcc build fix
2019-08-26 14:29:16 -07:00
Benjamin Sergeant
217d0650f4
bump version
2019-08-26 10:20:01 -07:00
Benjamin Sergeant
45d7bb34d7
ws connect has a new option to send HTTP headers + use WebSocketHttpHeaders instead of unordered_map<string, string>
2019-08-26 10:19:09 -07:00
Benjamin Sergeant
2e32319236
CobraConnection: sets a unique id field for all messages sent to [cobra]( https://github.com/machinezone/cobra ).
...
CobraConnection: sets a counter as a field for each event published.
2019-08-26 09:51:37 -07:00
Benjamin Sergeant
8eb0d0b7c3
put windows poll in the global namespace, not ix namespace
2019-08-26 09:51:37 -07:00
Benjamin Sergeant
193da820b2
Windows: use select instead of WSAPoll, through a poll wrapper
2019-08-22 10:34:17 -07:00
Benjamin Sergeant
c6198305d4
add new makefile target to make git tags
2019-08-20 09:21:30 -07:00
Benjamin Sergeant
c77d6ae3f5
bump version + talk about Windows fix in the changelog
2019-08-20 09:20:02 -07:00
Benjamin Sergeant
c72b2dbd6b
add poll alias to WSAPoll on Windows
2019-08-19 22:26:25 -07:00
Benjamin Sergeant
835523f77b
fix #101 / wrong include in IXSocket.cpp on Windows
2019-08-19 22:19:39 -07:00
Benjamin Sergeant
ec8a35b587
README tweaks
2019-08-19 20:35:26 -07:00
Benjamin Sergeant
aca18995d1
README / formatting
2019-08-19 20:33:56 -07:00
Benjamin Sergeant
f9178f58aa
README.md: add reference to WSAStartup to initialize the networking system
2019-08-19 09:47:59 -07:00
Benjamin Sergeant
2477946e68
(CI) linux: install libmbedtls
2019-08-14 21:49:43 -07:00
Benjamin Sergeant
7c4d040384
(CI) try to build Linux on Ubuntu Bionic
2019-08-14 21:44:49 -07:00
Benjamin Sergeant
197cf8ed36
bump version
2019-08-14 21:36:20 -07:00
Benjamin Sergeant
dd0d7c268f
CobraMetricThreadedPublisher _enable flag is an atomic, and CobraMetricsPublisher is enabled by default
2019-08-14 19:54:30 -07:00
Benjamin Sergeant
b2bfccac0a
clang format
2019-08-13 10:59:18 -07:00
Benjamin Sergeant
8b8b352e61
fix #99 / Connect error descriptions are invalid
2019-08-13 10:49:11 -07:00
Benjamin Sergeant
0403dd354b
update readme
2019-08-06 20:55:44 -07:00
Benjamin Sergeant
b78b453504
fix #98
2019-08-02 17:11:53 -07:00
Benjamin Sergeant
f8fef833b8
new options for cobra commands
...
- ws cobra_subscribe has a new -q (quiet) option
- ws cobra_subscribe knows to and display msg stats (count and # of messages received per second)
- ws cobra_subscribe, cobra_to_statsd and cobra_to_sentry commands have a new option, --filter to restrict the events they want to receive
2019-08-01 15:22:24 -07:00
Benjamin Sergeant
fc4068f2e5
ws connect command has a new option to send in binary mode (still default to text)
2019-07-25 15:48:45 -07:00
Benjamin Sergeant
c300866dcc
add better line editing capability to ws connect, thanks to linenoise-cpp
2019-07-25 11:54:50 -07:00
Benjamin Sergeant
18485a74e5
README.md / cosmetic
2019-07-23 14:04:45 -07:00
Benjamin Sergeant
4dd5950406
fix typo in README
2019-07-23 13:52:16 -07:00
Benjamin Sergeant
98de54106d
README: add reference to conan/vcpk to the build section
2019-07-22 20:41:06 -07:00
Benjamin Sergeant
4d64272a1a
do not update homebrew when installing a package
2019-07-03 14:49:39 -07:00
Benjamin Sergeant
0ccece908b
ci / get mbedtls from homebrew on mac
2019-07-03 14:46:05 -07:00
Benjamin Sergeant
64cd725060
do not use mbed tls for the unittest
2019-07-03 14:39:46 -07:00
Benjamin Sergeant
cc2fa55608
add new docker file to run the unittest with tsan on latest Ubuntu
2019-06-30 23:37:25 -07:00
Benjamin Sergeant
4fb268585c
dns / use cancellable instead of blocking
2019-06-30 23:26:14 -07:00
Benjamin Sergeant
3a2495c456
make IXDNSLookup more robust
2019-06-26 19:12:48 -07:00
Benjamin Sergeant
1d4d058ed0
simplify IXDNSLookup
2019-06-26 16:25:07 -07:00
Benjamin Sergeant
15a1347531
use poll instead of select in SocketServer
2019-06-25 17:18:24 -07:00
Benjamin Sergeant
4cbfa71338
switch from select to poll to deal with Android 9 giving us high socket fds when calling ::connect
2019-06-25 17:11:27 -07:00
Benjamin Sergeant
705625af0a
refactor select code + add protection against large fds (cf Android 9)
2019-06-25 15:41:39 -07:00
Benjamin Sergeant
01bc6654cb
Add extra check in IXWebSocketCloseTest.cpp
2019-06-25 14:10:39 -07:00
Benjamin Sergeant
eea42bff66
select refactoring IXSocket::select -> IXSocket::poll
2019-06-25 10:16:40 -07:00
Benjamin Sergeant
06b4762c19
disable CI on Windows
2019-06-25 00:28:11 -07:00
Benjamin Sergeant
1ee9479009
cmake use_tls fix
2019-06-24 23:34:31 -07:00
Benjamin Sergeant
73e94ed03a
do not build mbedtls on ci
2019-06-24 23:28:35 -07:00
Benjamin Sergeant
1883519e82
try to disable TLS for unittesting
2019-06-24 23:27:44 -07:00
Benjamin Sergeant
6f6c1f85ef
CI / build zlib and mbedtls locally
2019-06-24 23:17:19 -07:00
Benjamin Sergeant
c55ff3cb1b
CI work
2019-06-24 10:17:57 -07:00