Commit Graph

131 Commits

Author SHA1 Message Date
Benjamin Sergeant
8fda7cb131 remove unused code in ws cobra_publish 2019-10-14 11:15:14 -07:00
Benjamin Sergeant
0e9cf863cf Add client support for websocket subprotocol. Look for the new addSubProtocol method for details 2019-10-13 13:37:34 -07:00
Benjamin Sergeant
adcbf0d208 add a target for building wihout ssl + take Matt Boer updated script to run ws test with SSL (still broken for large payload) 2019-10-03 07:47:34 -07:00
Benjamin Sergeant
19150115bb ws: Signal handling code isn't include on Windows 2019-10-01 16:12:32 -07:00
Benjamin Sergeant
de87fa34dc Implement SSL server with OpenSSL backend / still flaky 2019-10-01 15:43:37 -07:00
Benjamin Sergeant
d60f5de231 Add --tls option to pass to ws server command, to enable/disable tls 2019-10-01 13:54:46 -07:00
Benjamin Sergeant
22b4e6a8fb Socket Factory has only one function which works for server and client code, and can do tls for both 2019-09-30 22:06:46 -07:00
Benjamin Sergeant
58d6e4bb26 all ws subcommands propagate tls options to servers (unimplemented) or ws or http client (implemented) (contributed by Matt DeBoer) 2019-09-30 18:21:20 -07:00
Benjamin Sergeant
0539d2df2e clang-format 2019-09-30 17:52:39 -07:00
Benjamin Sergeant
e023dd9c36 ws has a --version option 2019-09-30 17:31:33 -07:00
Benjamin Sergeant
2229159bd2 ws curl + http client tls option handling + ca cert processing for mbedtls 2019-09-29 21:13:11 -07:00
Benjamin Sergeant
4de7cb191b most ws command take tls options, no-op for now (contributed by Matt DeBoer) 2019-09-29 18:29:51 -07:00
Benjamin Sergeant
816c53e3a3 ws transfer + send + receive / improved logging (contributed by Matt DeBoer) 2019-09-29 17:21:52 -07:00
Benjamin Sergeant
0499a80c55 Export port 8008 for Docker + test_ws.sh is /bin/sh compatible 2019-09-26 14:36:14 -07:00
Benjamin Sergeant
f18980d010 http server unittest + refactoring 2019-09-26 09:45:59 -07:00
Benjamin Sergeant
2fb0ebb05b http server: in redirect mode, POST request are given a 200 status code and an empty response 2019-09-26 09:27:27 -07:00
Benjamin Sergeant
7495c9ebb8 Http server: add options to ws https to redirect all requests to a given url. 2019-09-26 09:10:30 -07:00
Benjamin Sergeant
b26d463bad Stop having ws send subcommand send a binary message in text mode, which would cause error in make ws_test shell script test 2019-09-25 15:39:43 -07:00
Benjamin Sergeant
fbf80f4ab1 Add simple Redis Server which is only capable of doing publish / subscribe. New ws redis_server sub-command to use it. The server is used in the unittest, so that we can run on CI in environment where redis isn not available like github actions env. 2019-09-23 21:04:01 -07:00
Benjamin Sergeant
8f8385f8f8 fix linux compilation error, by ordering dependant libraries properly 2019-09-23 12:32:04 -07:00
Benjamin Sergeant
122118196b move snake code to its own subfolder like ixcobra, ixcrypto, etc... 2019-09-23 11:46:16 -07:00
Benjamin Sergeant
6f2fe49a7b reformat everything with clang-format 2019-09-23 10:25:23 -07:00
Benjamin Sergeant
1769199d32 Fix crash in the Linux unittest in the HTTP client code, in Socket::readBytes. Cobra Metrics Publisher code returns the message id of the message that got published, to be used to validated that it got sent properly when receiving an ack. 2019-09-21 09:23:58 -07:00
Benjamin Sergeant
8821183aea missing file in ws tool 2019-09-19 12:51:34 -07:00
Benjamin Sergeant
a7cf151639 In DNS lookup code, make sure the weak pointer we use lives through the expected scope (if branch) 2019-09-19 12:51:11 -07:00
Benjamin Sergeant
57086e28d8 fix unittest warnings + remove trailing spaces 2019-09-12 11:43:52 -07:00
Benjamin Sergeant
0fde169aa4 restructure project 2019-09-10 12:19:22 -07:00
Benjamin Sergeant
ae3856c10f
Fix Windows CI with appveyor (#110)
Fix windows CI with appveyor + minor tweaks.
2019-09-07 14:07:00 -07:00
Benjamin Sergeant
e40dda7549 add cobra metrics publisher + server unittest 2019-09-05 21:57:05 -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
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
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
06bc795133
New option to cap the max wait between reconnection attempts. Still default to 10s. (setMaxWaitBetweenReconnectionRetries) (#108) 2019-08-30 12:46:35 -07:00
Benjamin Sergeant
95d633e71e tentative gcc build fix 2019-08-26 14:29:16 -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
193da820b2 Windows: use select instead of WSAPoll, through a poll wrapper 2019-08-22 10:34:17 -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
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