Commit Graph
100 Commits
Author SHA1 Message Date
Benjamin Sergeant 6c205b983e (openssl tls) when OpenSSL is older than 1.1, register the crypto locking callback to be thread safe. Should fix lots of CI failures 2020-05-06 16:26:30 -07:00
Benjamin Sergeant a65b334961 assert that the timeout is non zero in makeCancellationRequestWithTimeout 2020-05-06 15:53:27 -07:00
Benjamin Sergeant 2de8aafcbc another windows build error in IXUdpSocket ... 2020-05-05 08:29:39 -07:00
Benjamin Sergeant f075f586e1 fix windows compile error with UdpSocket::recvfrom 2020-05-05 08:15:01 -07:00
Benjamin Sergeant 93cb898989 fix compile error with UdpSocket::recvfrom 2020-05-05 08:03:04 -07:00
Benjamin Sergeant e4da62547b add reference to multiple projects using IXWebSocket 2020-05-05 07:52:02 -07:00
Benjamin Sergeant 2b4c06e6d2 UdpSocket::recvfrom last argument does not have to be a uint32_t 2020-05-05 07:49:07 -07:00
Benjamin Sergeant 15355188d5 (http client) rework a bit PATCH pull request, fix compile error with setForceBody and initialize _forceBody to false 2020-05-05 07:43:55 -07:00
Benjamin Sergeant 2786631e3b clang-format 2020-05-04 17:19:25 -07:00
Benjamin Sergeant 1b30061a4d remove unused variable 2020-05-04 17:18:21 -07:00
Benjamin Sergeant af003fc79b (ixbots) fix tsan data race error when accessing verbose parameter 2020-05-04 17:15:35 -07:00
Benjamin Sergeant 4f17cd5e74 (cobra bots) do not use a queue to store messages pending processing, let the bot handle queuing 2020-05-04 15:45:11 -07:00
Benjamin Sergeant b04764489c (doc) add link to a project using ixwebsocket #187 2020-05-04 09:21:39 -07:00
Benjamin Sergeant c3238b7e02 build fixes 2019-09-10 14:05:07 -07:00
Benjamin Sergeant b11640b477 update appveyor file to new directory structure 2019-09-10 12:33:47 -07:00
Benjamin Sergeant 2453f5b717 restructure project 2019-09-10 12:19:22 -07:00
Benjamin Sergeant 65c5c5f894 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 64d3c99f99 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 6c0890594b 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 fb271953f7 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 7080c5679f 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 c09eac49c9 README: update link to the doc 2019-09-06 10:42:48 -07:00
Benjamin Sergeant ae6f87eb42 ci 2019-09-05 22:32:54 -07:00
Benjamin Sergeant 82b3c5e2f3 travis linux 2019-09-05 22:29:00 -07:00
Benjamin Sergeant e41ba279e9 ci tweak / install redis 2019-09-05 22:14:55 -07:00
Benjamin Sergeant c259c918ac cobra metrics publisher test uses random free port 2019-09-05 22:05:00 -07:00
Benjamin Sergeant 2f7438f0d5 cobra chat test uses random free port 2019-09-05 22:02:10 -07:00
Benjamin Sergeant 37a7b362d8 add cobra metrics publisher + server unittest 2019-09-05 21:57:05 -07:00
Benjamin Sergeant c0f098a578 Add new cobra unittest, using server and client 2019-09-05 20:49:58 -07:00
Benjamin Sergeant 21404c23dd snake unsubscription fixes 2019-09-05 20:47:15 -07:00
Benjamin Sergeant eeefc9cf4b Fix compiler warning 2019-09-05 20:29:14 -07:00
Benjamin Sergeant 24b2475b11 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 2defe6f597 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 f9dc460325 cobra publish fix 2019-09-05 14:31:28 -07:00
Benjamin Sergeant 003afc8b56 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 95a97a197a 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 eccd8b3c0e ws autobahn / use condition variables for stopping test case + add more logging on errors 2019-09-04 12:21:54 -07:00
Benjamin Sergeant a43046c921 ws autobahn / report progress with spdlog::info to get timing info 2019-09-04 10:16:32 -07:00
Benjamin Sergeant b360fb9ca0 truncate module 2019-09-03 20:14:35 -07:00
Benjamin Sergeant 0bf185e143 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 da3d134be0 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 b4c4746d43 IXWebSocketTransport message processing refactoring 2019-09-03 15:48:55 -07:00
Benjamin Sergeant fdd1ad9b17 Validate close codes. Autobahn 7.9.* 2019-09-03 15:43:16 -07:00
Benjamin Sergeant 1be8d9d46f Validate that the close reason is proper utf-8. Autobahn 7.5.1 2019-09-03 14:35:40 -07:00
Benjamin Sergeant 51799353a6 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 3ad13a592d 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 55934918ff 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 ab93e4f168 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 e1ad0b0889 bump version 2019-09-02 10:14:15 -07:00
Benjamin Sergeant cbe3e7617c 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 94c8966e86 Close connections when reserved bits are used (autobahn test: 3 Reserved Bits) 2019-09-01 16:23:00 -07:00
Benjamin Sergeant d973a062c2 changelog 2019-09-01 11:39:00 -07:00
Benjamin Sergeant ba41dbc69a readme 2019-09-01 11:38:39 -07:00
Benjamin Sergeant 96380dd462 doc 2019-09-01 11:28:27 -07:00
Benjamin Sergeant 61bd765784 compute test case count properly 2019-09-01 11:17:28 -07:00
Benjamin Sergeant 4a0f06193b refactoring 2019-09-01 11:10:27 -07:00
Benjamin Sergeant 826917ef17 condition variable instead of busy looping 2019-09-01 10:50:16 -07:00
Benjamin Sergeant 4e1dbbbecf quiet mode 2019-09-01 10:45:51 -07:00
Benjamin Sergeant b5b0de2083 +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 a95fcbbdbf user agent 2019-08-30 12:50:56 -07:00
Benjamin Sergeant 0c1f2252a1 readme 2019-08-26 22:49:40 -07:00
Benjamin Sergeant 98a397696c readme 2019-08-26 22:29:10 -07:00
Benjamin Sergeant 225b7d7db7 doc / bring back detailed APIs 2019-08-26 22:11:35 -07:00
Benjamin Sergeant f968d4c333 one last tweak 2019-08-26 22:02:24 -07:00
Benjamin Sergeant 59e15be524 readme tweaks 2019-08-26 21:57:05 -07:00
Benjamin Sergeant ccabe93ae8 new simple readme 2019-08-26 21:55:00 -07:00
Benjamin Sergeant 56def6def4 Add md doc made with mkdocs 2019-08-26 21:25:45 -07:00
Benjamin Sergeant 3b1a1efed2 fix #104 - change ZLIB find_package to be optional 2019-08-26 14:51:33 -07:00
Benjamin Sergeant 185869e628 tentative gcc build fix 2019-08-26 14:29:16 -07:00
Benjamin Sergeant 108f6238e3 bump version 2019-08-26 10:20:01 -07:00
Benjamin Sergeant d3e5a63fa2 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 0847e60d2a 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 ac60ec4320 put windows poll in the global namespace, not ix namespace 2019-08-26 09:51:37 -07:00
Benjamin Sergeant ff75846d2d Windows: use select instead of WSAPoll, through a poll wrapper 2019-08-22 10:34:17 -07:00
Benjamin Sergeant 53c767140d add new makefile target to make git tags 2019-08-20 09:21:30 -07:00
Benjamin Sergeant 839a747ce8 bump version + talk about Windows fix in the changelog 2019-08-20 09:20:02 -07:00
Benjamin Sergeant f78a3f88ff add poll alias to WSAPoll on Windows 2019-08-19 22:26:25 -07:00
Benjamin Sergeant 142987259c fix #101 / wrong include in IXSocket.cpp on Windows 2019-08-19 22:19:39 -07:00
Benjamin Sergeant c8d41f987f README tweaks 2019-08-19 20:35:26 -07:00
Benjamin Sergeant d139dd88e8 README / formatting 2019-08-19 20:33:56 -07:00
Benjamin Sergeant 7898a5f4eb README.md: add reference to WSAStartup to initialize the networking system 2019-08-19 09:47:59 -07:00
Benjamin Sergeant 53efbf3ca9 (CI) linux: install libmbedtls 2019-08-14 21:49:43 -07:00
Benjamin Sergeant b6e5ff2f3d (CI) try to build Linux on Ubuntu Bionic 2019-08-14 21:44:49 -07:00
Benjamin Sergeant ae1386a1d7 bump version 2019-08-14 21:36:20 -07:00
Benjamin Sergeant 2f730303c2 CobraMetricThreadedPublisher _enable flag is an atomic, and CobraMetricsPublisher is enabled by default 2019-08-14 19:54:30 -07:00
Benjamin Sergeant e98ec9ec75 clang format 2019-08-13 10:59:18 -07:00
Benjamin Sergeant ffecef901a fix #99 / Connect error descriptions are invalid 2019-08-13 10:49:11 -07:00
Benjamin Sergeant 5c13cbb08f update readme 2019-08-06 20:55:44 -07:00
Benjamin Sergeant 64cfbe9514 fix #98 2019-08-02 17:11:53 -07:00
Benjamin Sergeant 5cc21c87fb 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 505e0c79d9 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 ca9d59c1c1 add better line editing capability to ws connect, thanks to linenoise-cpp 2019-07-25 11:54:50 -07:00
Benjamin Sergeant 8319dbb56a README.md / cosmetic 2019-07-23 14:04:45 -07:00
Benjamin Sergeant b1b6697c37 fix typo in README 2019-07-23 13:52:16 -07:00
Benjamin Sergeant 280716394d README: add reference to conan/vcpk to the build section 2019-07-22 20:41:06 -07:00
Benjamin Sergeant 5795f72eab do not update homebrew when installing a package 2019-07-03 14:49:39 -07:00
Benjamin Sergeant 7e16c8959b ci / get mbedtls from homebrew on mac 2019-07-03 14:46:05 -07:00
Benjamin Sergeant dfc188a24d do not use mbed tls for the unittest 2019-07-03 14:39:46 -07:00
Benjamin Sergeant d18bae0c95 add new docker file to run the unittest with tsan on latest Ubuntu 2019-06-30 23:37:25 -07:00
Benjamin Sergeant 747746cba1 dns / use cancellable instead of blocking 2019-06-30 23:26:14 -07:00