Commit Graph

723 Commits

Author SHA1 Message Date
Benjamin Sergeant
72472f2899 IXWebSocketPerMessageDeflateCodec: use std::array instead of std::unique_ptr for a fixed size array 2020-08-17 16:36:24 -07:00
Benjamin Sergeant
42f71364ca IXHttpClient.cpp: use std::array instead of std::unique_ptr for a fixed size array 2020-08-17 16:25:55 -07:00
Benjamin Sergeant
3dabd3a556 (ws) merge all ws_*.cpp files into a single one to speedup compilation 2020-08-15 19:30:17 -07:00
Benjamin Sergeant
0498e2fa98 IXBench.h is missing a pragma once 2020-08-15 18:58:46 -07:00
Benjamin Sergeant
2aaf59651e (socket server) in the loop accepting connections, call select without a timeout on unix to avoid busy looping, and only wake up when a new connection happens 2020-08-15 18:32:59 -07:00
Benjamin Sergeant
cd4e51eacf (socket server) instead of busy looping with a sleep, only wake up the GC thread when a new thread will have to be joined, (we know that thanks to the ConnectionState OnSetTerminated callback 2020-08-15 16:24:35 -07:00
Benjamin Sergeant
785842de03 (socket server) add a callback to the ConnectionState to be invoked when the connection is terminated. This will be used by the SocketServer in the future to know on time that the associated connection thread can be terminated. 2020-08-15 16:03:40 -07:00
Benjamin Sergeant
261095fa12 (socket server) do not create a select interrupt object everytime when polling for notifications while waiting for new connections, instead use a persistent one which is a member variable 2020-08-15 15:28:15 -07:00
Benjamin Sergeant
ed2ed0f7ae (ixwebsocket client) handle HTTP redirects 2020-08-14 18:13:34 -07:00
Benjamin Sergeant
d3bcbdac26 (ws) upgrade to latest version of nlohmann json (3.9.1 from 3.2.0) 2020-08-13 22:10:38 -07:00
Benjamin Sergeant
8c5b28adce (websocket proxy server) add ability to map different hosts to different websocket servers, using a json config file 2020-08-13 21:20:42 -07:00
Benjamin Sergeant
dcbafae35a (ws) on macOS, with OpenSSL or MbedTLS, use /etc/ssl/cert.pem as the system certs 2020-08-12 18:55:13 -07:00
Benjamin Sergeant
b8265bf7f2 (ws) -q option imply info log level, not warning log level 2020-08-11 15:44:06 -07:00
Benjamin Sergeant
12f36b61ff (websocket server) Handle programmer error when the server callback is not registered properly (fix #227) 2020-08-06 04:40:32 -07:00
Benjamin Sergeant
6e47c62c06 (ws) Add a new ws sub-command, push_server. This command runs a server which sends many messages in a loop to a websocket client. We can receive above 200,000 messages per second (cf #235). 2020-08-02 12:41:34 -07:00
Benjamin Sergeant
bcae7f326d (ws) Add a new ws sub-command, echo_client. This command send a message to an echo server, and send back to a server whatever message it does receive. When connecting to a local ws echo_server, on my MacBook Pro 2015 I can send/receive around 30,000 messages per second. (cf #235) 2020-08-02 12:09:13 -07:00
Benjamin Sergeant
6f0307fb35 (build) make using zlib optional, with the caveat that some http and websocket features are not available when zlib is absent 2020-07-31 22:54:57 -07:00
Benjamin Sergeant
2e3d625c1e (websocket client) onProgressCallback not called for short messages on a websocket (fix #233) 2020-07-29 17:47:33 -07:00
Benjamin Sergeant
4d51098c86 (websocket client) heartbeat is not sent at the requested frequency (fix #232) 2020-07-29 11:24:42 -07:00
Benjamin Sergeant
e85f975ab0 compiler warning fixes 2020-07-28 21:46:26 -07:00
Benjamin Sergeant
dc77d62a5d (ixcobra) CobraConnection: unsubscribe from all subscriptions when disconnecting 2020-07-28 10:32:18 -07:00
Benjamin Sergeant
4f41f209a2 (socket utility) move ix::getFreePort to ixwebsocket library 2020-07-27 18:17:13 -07:00
Benjamin Sergeant
22dffd5b7e WebSocket::close is re-entrant 2020-07-27 17:38:33 -07:00
Benjamin Sergeant
847fc142d1 (ixwebsocket server) change legacy api with 2 nested callbacks, so that the first api takes a weak_ptr<WebSocket> as its first argument 2020-07-25 11:42:07 -07:00
Benjamin Sergeant
0388459bd0 (ixwebsocket) add WebSocketProxyServer, from ws. Still need to make the interface better. 2020-07-25 11:26:06 -07:00
Benjamin Sergeant
e34f1c30d6 (ws) port broadcast_server sub-command to the new server API 2020-07-24 14:35:07 -07:00
Benjamin Sergeant
b146e93a3a (unittest) port most unittests to the new server API 2020-07-24 12:49:36 -07:00
Benjamin Sergeant
9957ec9724 (ws) port ws snake to the new server API 2020-07-24 12:33:17 -07:00
Benjamin Sergeant
e78019dad6 (ws) port ws transfer to the new server API 2020-07-24 11:52:16 -07:00
Benjamin Sergeant
0f026c5da2 (websocket client) reset WebSocketTransport onClose callback in the WebSocket destructor 2020-07-24 10:03:29 -07:00
Benjamin Sergeant
c26a2d5d39 (websocket server) reset client websocket callback when the connection is closed 2020-07-24 09:41:02 -07:00
Benjamin Sergeant
2798886c0b (websocket server) add a new simpler API to handle client connections / that API does not trigger a memory leak while the previous one did 2020-07-23 19:29:41 -07:00
Benjamin Sergeant
ffde283a4b (build) merge platform specific files which were used to have different implementations for setting a thread name into a single file, to make it easier to include every source files and build the ixwebsocket library (fix #226) 2020-07-17 11:58:06 -07:00
Benjamin Sergeant
f7031d0d3e set thread name in only one file 2020-07-17 11:43:50 -07:00
Benjamin Sergeant
595e6c57df IXSelectInterruptPipe.h included in cmake on windows but compiled out 2020-07-17 11:33:02 -07:00
Benjamin Sergeant
87709c201e (socket server) bump default max connection count from 32 to 128 2020-07-10 17:11:11 -07:00
Benjamin Sergeant
e70d83ace1 (snake) implement super simple stream sql expression support in snake server 2020-07-10 16:10:59 -07:00
Benjamin Sergeant
b21306376b uwp build fix + more ivp6 support 2020-07-08 12:38:55 -07:00
Benjamin Sergeant
fbd17685a1 (socket+websocket+http+redis+snake servers) expose the remote ip and remote port when a new connection is made (see #222) / only ipv4 is handled 2020-07-08 12:10:35 -07:00
Benjamin Sergeant
3a673575dd clang format 2020-07-08 10:39:46 -07:00
Benjamin Sergeant
d5e51840ab use const iterators 2020-07-08 10:34:14 -07:00
Benjamin Sergeant
543c2086b2 more templates in WebSocketTransport 2020-07-07 21:26:42 -07:00
Benjamin Sergeant
95eab59c08 WebSocketPerMessageDeflateCompressor can work with vector or std::string 2020-07-07 21:26:04 -07:00
Benjamin Sergeant
7c1b57c8cd (cmake) change the way zlib and openssl are searched 2020-07-07 10:58:20 -07:00
Benjamin Sergeant
dddf00e3b1 (cobra python bots) remove the test which stop the bot when events do not follow cobra metrics system schema with an id and a device entry 2020-07-06 16:15:24 -07:00
Benjamin Sergeant
cc47fb1c83 (cobra bots) remove bots which is not required now that we can use Python extensions 2020-06-26 16:49:08 -07:00
Benjamin Sergeant
68c97da518 (cmake) new python code is optional and enabled at cmake time with -DUSE_PYTHON=1 2020-06-25 10:05:02 -07:00
Benjamin Sergeant
615f1778c3 new cobra to python bot (still sending to statsd)
values + string building can be done in python (we are embedding it)
2020-06-24 23:21:19 -07:00
Benjamin Sergeant
c45b197c85 (cobra metrics to statsd bot) fps slow frame info : do not include os name 2020-06-19 18:10:49 -07:00
Benjamin Sergeant
78713895dd (cobra metrics to statsd bot) send info about memory warnings 2020-06-19 17:46:59 -07:00
Benjamin Sergeant
10c014bf98 (http client) fix deadlock when following redirects 2020-06-19 00:11:06 -07:00
Benjamin Sergeant
9bb3643fc7 (cobra metrics to statsd bot) send info about net requests 2020-06-18 11:25:48 -07:00
Benjamin Sergeant
565a08b229 (cobra client and bots) add batch_size subscription option for retrieving multiple messages at once 2020-06-17 17:13:45 -07:00
Benjamin Sergeant
558daf8911 (websocket) WebSocketServer is not a final class, so that users can extend it (fix #215) 2020-06-15 18:29:42 -07:00
Benjamin Sergeant
7ba7ff4b2a (cobra bots) minor aesthetic change, in how we display http headers with a : then space as key value separator instead of :: with
no space
2020-06-15 16:09:31 -07:00
Benjamin Sergeant
aa142df486 (cobra metrics to statsd bot) change from a statsd type of gauge to a timing one 2020-06-12 13:47:01 -07:00
Benjamin Sergeant
5e200a440f (redis cobra bots) capture most used devices in a zset 2020-06-11 18:49:45 -07:00
Benjamin Sergeant
ac9710d5d6 (ws) add bare bone redis-cli like sub-command, with command line editing powered by libnoise 2020-06-11 17:30:42 -07:00
Benjamin Sergeant
7603d1a71b (redis cobra bots) ws cobra metrics to redis / hostname invalid parsing 2020-06-11 08:33:36 -07:00
Benjamin Sergeant
d0cd4aed5a (redis cobra bots) xadd with maxlen + fix bug in xadd client implementation and ws cobra metrics to redis command argument parsing 2020-06-11 08:20:03 -07:00
Benjamin Sergeant
c5aadffa08 (redis cobra bots) update the cobra to redis bot to use the bot framework, and change it to report fps metrics into redis streams. 2020-06-10 22:30:55 -07:00
Benjamin Sergeant
ee8a3a52ec compile tweak on linux + version bump 2020-06-04 15:01:16 -07:00
Benjamin Sergeant
531bd624b5 remove spaces in keys + verbose statsd 2020-06-04 14:57:36 -07:00
Benjamin Sergeant
c317100b47 (statsd cobra bots) statsd improvement: prefix does not need a dot as a suffix, message size can be larger than 256 bytes, error handling was invalid, use core logger for logging instead of std::cerr 2020-06-04 09:35:55 -07:00
Benjamin Sergeant
268f528423 httpd gzip compression / set a response header and search for gzip in the request header in case deflate is added to gzip in there 2020-06-01 17:11:42 -07:00
Benjamin Sergeant
4872b59fac fix windows build (or operator is not supported || is required 2020-05-29 17:18:09 -07:00
Benjamin Sergeant
bb1be240ec fix linux compile failure 2020-05-29 16:53:57 -07:00
Benjamin Sergeant
b008c97c83 (http server) support gzip compression 2020-05-29 16:49:29 -07:00
Benjamin Sergeant
16eb269e1e bump version for (compiler fix) support clang 5 and earlier (contributed by @LunarWatcher) #206 2020-05-20 10:58:30 -07:00
Benjamin Sergeant
2319dec278 (cmake) revert CMake changes to fix #203 and be able to use an external OpenSSL 2020-05-20 10:56:58 -07:00
Olivia Zoe
f1be48aff1
Re-enable support for clang 5 and earlier (#206) 2020-05-20 10:56:24 -07:00
Benjamin Sergeant
54d4d81bf4 (cmake) make install cmake files optional to not conflict with vcpkg
See https://github.com/microsoft/vcpkg/pull/11030
2020-05-17 20:36:46 -07:00
Benjamin Sergeant
ea207d8199 (windows + tls) mbedtls is the default windows tls backend + add ability to load system certificates with mbdetls on windows 2020-05-17 20:36:46 -07:00
Benjamin Sergeant
1af39bf0eb (ixbots) add options to limit how many messages per minute should be processed 2020-05-12 21:40:17 -07:00
Benjamin Sergeant
2e904801a0 (ixbots) add new class to configure a bot to simplify passing options around 2020-05-12 19:08:16 -07:00
Benjamin Sergeant
4773af8f2f (openssl tls) (openssl < 1.1) logic inversion - crypto locking callback are not registered properly 2020-05-08 09:54:42 -07:00
Benjamin Sergeant
c1403df74a (cmake) default TLS back to mbedtls on Windows Universal Platform 2020-05-08 09:31:53 -07:00
Benjamin Sergeant
0772ef7ef5 (cobra bots) add a --heartbeat_timeout option to specify when the bot should terminate because no events are received 2020-05-06 22:01:48 -07:00
Benjamin Sergeant
c030a62c8b openSSLLockingCallback should be static 2020-05-06 16:57:53 -07:00
Benjamin Sergeant
931530b101 only register the crypto lock callback if no-one has registered them before us 2020-05-06 16:49:04 -07:00
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
2b4c06e6d2 UdpSocket::recvfrom last argument does not have to be a uint32_t 2020-05-05 07:49:07 -07:00
tostc
7337ed34a6
Added asynchronous udp receive function (#193)
* Added asynchronous udp receive function

* Remove receive_async and added low level recv, which is non-blocking.

* Remove thread include

* Moved unix include to IXNetSystem.h
2020-05-05 07:47:41 -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
Liz3
8760c87635
add PATCH and add option to enforce a http request body write (#195)
* add PATCH and add option to enforce a http request body write

* remove private bool prop
2020-05-05 07:38:55 -07:00
Benjamin Sergeant
2786631e3b clang-format 2020-05-04 17:19:25 -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
b34d9f6a06 uwp fixes 2020-05-01 11:27:59 -07:00
Benjamin Sergeant
303f99a432 refine previous commit 2020-05-01 10:37:25 -07:00
Benjamin Sergeant
a42ccea8dd disable unicode 2020-05-01 09:22:03 -07:00
Benjamin Sergeant
b45980f0f6 (http client) better current request cancellation support when the HttpClient destructor is invoked (see #189) 2020-04-29 11:53:23 -07:00
Benjamin Sergeant
fbca513008 bump version 2020-04-27 12:36:56 -07:00
Benjamin Sergeant
5632360fbd (http client) Set default values for most HttpRequestArgs struct members (fix #185) 2020-04-27 09:43:31 -07:00
Benjamin Sergeant
0ab04f51fe (ssl) Default to OpenSSL on Windows, since it can load the system certificates by default 2020-04-25 15:36:31 -07:00
Benjamin Sergeant
287e48962f bump version number 2020-04-25 11:41:58 -07:00
Francisco Javier
953c680eee
Bug on setting extra headers. Now it loses the first string character. (#184)
Client code:

    ...

    ix::WebSocketHttpHeaders headers {
        {"Cookie", "ABC"}
    };

    ...

Expected header string on server:
    "Cookie: ABC"

Resulted header string on server:
    "Cookie: BC"

Solution:
    The easy way I found to solve the problem is to add a space where extra headers are set before sended to server.

Co-authored-by: Fco. Javier M. C <fcojavmc@todo-redes.com>
2020-04-25 11:39:37 -07:00
Benjamin Sergeant
2802cad8c4 more tls in memory certs doc + bump file format 2020-04-24 15:50:39 -07:00
Benjamin Sergeant
9f770b10c0 clang-format 2020-04-24 15:34:00 -07:00
Max Weisel
677f79b0ea
Implement API for adding custom roots via a string (#178)
* Implement API for adding custom roots via a string. SocketTLSOptions API design needs work, but the IXSocketOpenSSL implementation feels good to me.

* Improve API design for specifying roots from memory.

* Add in-memory root CAs mbedtls implementation.

* Fix bug in newer versions of OpenSSL with in-memory certificate handling.
2020-04-24 15:32:11 -07:00
Benjamin Sergeant
2469d7102e missing headers for url parsing 2020-04-24 14:13:15 -07:00
Benjamin Sergeant
79acb915ce merge the 2 url parsing file into one, fix a silly build error 2020-04-24 14:08:59 -07:00
Benjamin Sergeant
c70f1d09a8 include all ssl backends inside special per backend macro 2020-04-24 12:47:47 -07:00
Benjamin Sergeant
9d79596629 (ixbots) display sent/receive message, per seconds as accumulated 2020-04-17 09:56:09 -07:00
Benjamin Sergeant
0b6fd989f5 (ws) add a --logfile option to configure all logs to go to a file 2020-04-17 09:35:47 -07:00
Benjamin Sergeant
0f5d15aa11 (cobra bots) add a utility class to factor out the common bots features (heartbeat) and move cobra to sentry bot to use it 2020-04-16 14:49:49 -07:00
Benjamin Sergeant
ccfd196863 clang-format 2020-04-16 11:58:06 -07:00
Benjamin Sergeant
9b8cfa0a37 (websocket) add a positive number to the heartbeat message sent, incremented each time the heartbeat is sent 2020-04-15 18:33:36 -07:00
Benjamin Sergeant
64754df66c (ixcobra) change cobra event callback to use a struct instead of several objects, which is more flexible/extensible 2020-04-15 17:38:39 -07:00
Benjamin Sergeant
386ef3ab04 (ixcobra) make CobraConnection_EventType an enum class (CobraEventType) 2020-04-15 16:59:17 -07:00
Benjamin Sergeant
2c4bf8f4bd (ixsentry) add a library method to upload a payload directly to sentry 2020-04-14 22:02:51 -07:00
Benjamin Sergeant
3a2c446225 missing headers in IXWebSocketCloseInfo.h, ,IXWebSocketErrorInfo.h and IXWebSocketOpenInfo.h 2020-04-14 21:52:27 -07:00
Benjamin Sergeant
35630fe7ed new makefile target + better error description in Socket::readBytes 2020-04-14 21:50:56 -07:00
Benjamin Sergeant
bea582c208 cobra subscriber in fluentd mode insert a created_at timestamp entry 2020-04-14 15:30:30 -07:00
Benjamin Sergeant
432f0570f4 (websocket) WebSocketMessagePtr is a unique_ptr instead of a shared_ptr 2020-04-13 21:56:01 -07:00
Benjamin Sergeant
37a054723a (websocket) use persistent member variable as temp variables to encode/decode zlib messages in order to reduce transient allocations 2020-04-13 21:38:15 -07:00
Benjamin Sergeant
c57cf413fb (ws) add a --runtime option to ws cobra_subscribe to optionally limit how much time it will run 2020-04-13 19:03:53 -07:00
Benjamin Sergeant
f1c106728b (third_party deps) fix #177, update bundled spdlog to 1.6.0 2020-04-11 13:32:16 -07:00
Benjamin Sergeant
f9d75c9374 (windows) when using OpenSSL, the system store is used to populate the cacert. No need to ship a cacert.pem file with your app. 2020-04-04 18:33:01 -07:00
Benjamin Sergeant
f3b97097cd (windows) ci: windows build with TLS (mbedtls) + verify that we can be build with OpenSSL 2020-04-04 17:49:52 -07:00
Benjamin Sergeant
1d3db5f75b (cobra to statsd bot) add ability to extract a numerical value and send a timer event to statsd, with the --timer option 2020-03-30 16:08:47 -07:00
Benjamin Sergeant
e465f7af52 (cobra to statsd bot) bot init was missing + capture socket error 2020-03-29 22:03:27 -07:00
Benjamin Sergeant
f8bf1fe7cd (cobra to statsd bot) add ability to extract a numerical value and send a gauge event to statsd 2020-03-29 19:32:43 -07:00
Benjamin Sergeant
cfa5718e40 (ws cobra subscriber) use a Json::StreamWriter to write to std::cout, and save one std::string allocation for each message printed 2020-03-29 15:24:46 -07:00
Benjamin Sergeant
40c619c1ec (docker) trim down docker image (300M -> 12M) / binary built without symbol and size optimization, and source code not copied over 2020-03-29 13:06:44 -07:00
Benjamin Sergeant
22b02e0e5c update doc 2020-03-28 10:46:42 -07:00
Benjamin Sergeant
686aface26 bump version to 9.1.3 2020-03-28 10:33:05 -07:00
Benjamin Sergeant
771ebb2a4c (mac ssl) rename DarwinSSL -> SecureTransport (see this too -> https://github.com/curl/curl/issues/3733) 2020-03-26 19:40:52 -07:00
Benjamin Sergeant
0fffb1e894 (websocket) fix data race accessing _socket object without mutex protection when calling wakeUpFromPoll in WebSocketTransport.cpp 2020-03-26 19:31:59 -07:00
Benjamin Sergeant
d2db7310ff (ixcobra) add explicit event types for handshake, authentication and subscription failure, and handle those by exiting in ws_cobra_subcribe and friends 2020-03-26 18:54:28 -07:00
Benjamin Sergeant
dffa759f71 move IXBench code under ixwebsocker folder 2020-03-24 20:53:25 -07:00
Benjamin Sergeant
61e789d6a4 formatting 2020-03-24 20:37:55 -07:00
Benjamin Sergeant
37cb2cc266 (ws connect) display statistics about how much time it takes to stop the connection / cf #168 2020-03-24 20:29:09 -07:00
Benjamin Sergeant
179e17895d unique_ptr for sockets 2020-03-24 12:48:55 -07:00
Benjamin Sergeant
9f818c7acf (socket) selectInterrupt member is an unique_ptr instead of being a shared_ptr 2020-03-24 10:00:41 -07:00
Benjamin Sergeant
9dcc2538ae (websocket) reset per-message deflate codec everytime we connect to a server/client 2020-03-23 18:46:30 -07:00
Benjamin Sergeant
f41a54186c (websocket) fix #167, a long standing issue with sending empty messages with per-message deflate extension (and hopefully other zlib bug) 2020-03-23 15:21:53 -07:00
Benjamin Sergeant
e0733d205c fix linux linker error 2020-03-22 21:59:30 -07:00
Benjamin Sergeant
f72f845ad2 trim headers and unused code in IXUdpSocket 2020-03-22 21:51:41 -07:00
Benjamin Sergeant
a0ffb2ba53 cobra to statsd bot ported to windows + add unittest 2020-03-22 19:37:04 -07:00
Benjamin Sergeant
5ce846f48b indent files 2020-03-20 17:00:18 -07:00
Benjamin Sergeant
1d6373335c (websocket+tls) fix hang in tls handshake which could lead to ANR, discovered through unittesting. 2020-03-20 16:57:27 -07:00
Benjamin Sergeant
829751b7af (cobra) CobraMetricsPublisher can be configure with an ix::CobraConfig + more unittest use SSL in server + client 2020-03-20 12:22:00 -07:00
Benjamin Sergeant
6085839ef7 minor refactoring 2020-03-18 11:45:28 -07:00
Benjamin Sergeant
696d802703 bump version 2020-03-18 01:15:15 -07:00
Benjamin Sergeant
b287730c19 Simplify ping/pong based heartbeat implementation 2020-03-18 01:14:08 -07:00
Benjamin Sergeant
d6f534de06 (ws) ws echo_server gains a new option (-p) to disable responding to pings with pongs 2020-03-18 00:01:57 -07:00
Benjamin Sergeant
e8f81776f9 (cobra to sentry bot + docker) default docker file uses mbedtls + ws cobra_to_sentry pass tls options to sentryClient. 2020-03-16 10:05:21 -07:00
Benjamin Sergeant
44f599747e (cobra client) ws cobra subscribe resubscribe at latest position after being disconnected 2020-03-13 17:30:31 -07:00
Benjamin Sergeant
9801ebdb36 (cobra client) can subscribe with a position 2020-03-13 16:06:13 -07:00
Benjamin Sergeant
332ffb0603 (cobra client) pass the message position to the subscription data callback 2020-03-13 12:49:37 -07:00
Benjamin Sergeant
90df3d1805 (openssl tls backend) Fix a hand in OpenSSL when using TLS v1.3 ... by disabling TLS v1.3 2020-03-12 16:27:25 -07:00
Benjamin Sergeant
6a4d69afc5 (cobra) IXCobraConfig struct has tlsOptions and per message deflate options 2020-03-11 12:40:32 -07:00
Benjamin Sergeant
0a11132b07 (cobra) add IXCobraConfig struct to pass cobra config around 2020-03-11 10:48:41 -07:00
Benjamin Sergeant
b1f30bb40f (ws cobra_subscribe) add a --fluentd option to wrap a message in an enveloppe so that fluentd can recognize it 2020-03-09 15:25:43 -07:00
Benjamin Sergeant
4ef04b8339 (websocket server) fix regression with disabling zlib extension on the server side. If a client does not support this extension the server will handle it fine. We still need to figure out how to disable the option. cc #160 2020-03-02 16:53:08 -08:00
Benjamin Sergeant
e15a2900e7 (websocket) traffic tracker received bytes is message size while it should be wire size 2020-02-26 11:24:41 -08:00
Benjamin Sergeant
140a21c8b3 (ws_connect) display sent/received bytes statistics on exit 2020-02-26 11:23:36 -08:00
Benjamin Sergeant
6d0c568aaa update doc / fix incorrect comment about sending defaultint to binary mode 2020-02-24 16:24:32 -08:00
Benjamin Sergeant
4a9b0b9dfd (server) give thread name to some usual worker threads / unittest is broken !! 2020-02-23 09:44:58 -08:00
Benjamin Sergeant
8837d5e784 (websocket server) fix regression from 8.1.2, where per-deflate message compression was always disabled 2020-02-22 10:15:43 -08:00
Benjamin Sergeant
242c945400 (client + server) Fix #155 / http header parser should treat the space(s) after the : delimiter as optional. Fixing this bug made us discover that websocket sub-protocols are not properly serialiazed, but start with a , 2020-02-21 14:05:38 -08:00
Benjamin Sergeant
4c66a7561e (WebSocketServer) add option to disable deflate compression, exposed with the -x option to ws echo_server 2020-02-18 21:38:28 -08:00
Benjamin Sergeant
111475e65c (ws cobra to statsd and sentry sender) exit if no messages are received for one minute, which is a sign that something goes wrong on the server side. That should be changed to be configurable in the future 2020-02-18 12:43:07 -08:00
Benjamin Sergeant
45061b0b14 (http client + sentry minidump upload) Multipart stream closing boundary is invalid + mark some options as mandatory in the command line toolsj 2020-02-13 12:25:18 -08:00
Benjamin Sergeant
1bb847a51c bump version for #154 fix which was about removing the unused subtree which was causing some way of installing to break 2020-02-12 11:21:46 -08:00
Benjamin Sergeant
f994a41845 (IXCobraConnection) set a ping timeout of 90 seconds. If no pong messages are received as responses to ping for a while, give up and close the connection 2020-01-31 16:25:45 -08:00
Benjamin Sergeant
f3760318b7 (cobra to sentry) remove noisy logging 2020-01-31 16:07:36 -08:00
Benjamin Sergeant
c2362e6875 (ixcobra) check if we are authenticated in publishNext before trying to publish a message 2020-01-30 20:52:11 -08:00
johnfoconnor
d91b24723d version 8.0.2: add severity level for log sentry events (#152)
* script to update version

* version 8.0.2: add severity level for log sentry events
2020-01-28 14:04:18 -08:00
Benjamin Sergeant
2d28b7d4ff bump version and update changelog 2020-01-28 10:50:03 -08:00
Benjamin Sergeant
86d3fc8621 quit checkConnection after sleeping if requested to stop (iterate on #151) 2020-01-28 10:46:04 -08:00
Benjamin Sergeant
422c7ff855 wait with a condition variable instead of a this_thread::sleep_for so that waiting can be cancelled when we stop/shutdown the data thread (see #151) 2020-01-28 10:04:32 -08:00
Benjamin Sergeant
1c7ccbae12 bump version 2020-01-27 17:41:27 -08:00
Benjamin Sergeant
ed2a81f115 Fix #148 2020-01-27 17:29:44 -08:00
Seth Alves
7ed8ac208a bind returns zero on success (#149) 2020-01-27 17:15:44 -08:00
Benjamin Sergeant
aa12098cb5 add -6 option to ws echo_server / cf #148 2020-01-26 16:44:44 -08:00
Benjamin Sergeant
5d4bb90703 (SocketServer) add ability to bind on an ipv6 address 2020-01-26 16:21:56 -08:00
Benjamin Sergeant
fad9f89846 (ws) add a dnslookup sub-command, to get the ip address of a remote host 2020-01-26 16:21:56 -08:00
ronen barzel
527308a049 Remove 'handleConnect() done' info message (#147) 2020-01-26 10:03:17 -08:00
Benjamin Sergeant
65bae2736d fix #144 - get rid of stubbed windows ssl schannel backend 2020-01-14 13:39:48 -08:00
Benjamin Sergeant
a923caec0b install gdb in the alpine dockerfile 2020-01-14 13:37:28 -08:00
Benjamin Sergeant
4d7332c4ee activate chat test on Windows 2020-01-13 16:44:10 -08:00
Benjamin Sergeant
4f3f1f3e4c simplify socket interface 2020-01-12 22:30:16 -08:00
Benjamin Sergeant
2a954b5b5b use curl code for large apple ssl send 2020-01-12 22:04:06 -08:00
Benjamin Sergeant
d2c5ab1cc4 (openssl + mbedssl) fix #140, can send large files with ws send over ssl / still broken with apple ssl 2020-01-12 11:08:44 -08:00
Benjamin Sergeant
9651f3823d (apple ssl) model write method after the OpenSSL one for consistency
More test code for #140.
2020-01-10 18:32:34 -08:00
Benjamin Sergeant
df0239ae68 poll: handle POLLNVAL 2020-01-09 13:45:58 -08:00
Benjamin Sergeant
ce9db42c23 socket polling / handle more error case such as hanged socket 2020-01-09 12:26:57 -08:00
Benjamin Sergeant
a844dbc587 websocket closing / handle failure to flush send buffer as an error case 2020-01-09 12:17:37 -08:00
Benjamin Sergeant
fe29579755 refactor receiving socket code in its own method 2020-01-09 12:00:42 -08:00
Matthew Albrecht
b816f1fbda Allow custom OpenSSL lib, only include openssl/x509v3.h when used. (#143)
* Allow custom OpenSSL lib, only include openssl/x509v3.h when used.

Using fnmatch on Unix systems, PathMatchSpecA is the best WINAPI equivalent.

* Moved shlwapi into WIN32 block.
2020-01-08 13:57:57 -08:00
Matthew Albrecht
d72d516a92 Fixed build error with vcpkg installed. (#141) 2020-01-07 10:40:36 -08:00
Benjamin Sergeant
f6c482c65d (apple ssl) unify read and write ssl utility code 2020-01-06 15:19:14 -08:00
Benjamin Sergeant
dec8a2b9ab apple ssl: aesthetic change (get rid of yoda comparisons/conditionals) 2020-01-06 14:45:05 -08:00
Benjamin Sergeant
a5bc39be55 (websocket client) better error propagation when errors are detected while sending data + (ws send) detect failures to send big files, terminate in those cases and report error (troubleshooting #140) 2020-01-06 14:34:43 -08:00
Benjamin Sergeant
f56098dd4c (ws send) add option (-x) to disable per message deflate compression 2020-01-04 15:08:36 -08:00