Benjamin Sergeant
27dabaaf86
tsan openssl mac ci
2020-03-26 16:38:41 -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
b7e7837d76
fix simple compile error
2020-03-22 19:43:43 -07:00
Benjamin Sergeant
fe966b19c7
re-enable unittests
2020-03-22 19:39:28 -07:00
Benjamin Sergeant
a0ffb2ba53
cobra to statsd bot ported to windows + add unittest
2020-03-22 19:37:04 -07:00
Benjamin Sergeant
5ad54a8904
pre-commit / fix simple file trailing things
2020-03-21 19:31:38 -07:00
Benjamin Sergeant
10e132e8ef
remove std::cerr in IXRedisServer which triggers a tsan error
2020-03-20 17:50:08 -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
5691b55967
(unittest) / try to run the cobra 2 sentry bot test with SSL if the platform supports it
2020-03-19 18:50:46 -07:00
Benjamin Sergeant
575bceb1ec
add make target for ubsan, tsan and asan, and enable running the unittest on mac with tsan
2020-03-18 20:53:54 -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
8ec515f292
(ws) ws connect gains a new option to set the interval at which to send pings
2020-03-17 23:54:32 -07:00
Benjamin Sergeant
c6204f4d90
tweak mkdoc action
2020-03-17 10:47:06 -07:00
Benjamin Sergeant
7dfad9c0cc
more docs
2020-03-17 10:41:20 -07:00
Benjamin Sergeant
21fac0be6c
Create mkdocs.yaml github action from the web-ui
2020-03-17 10:22:58 -07:00
Benjamin Sergeant
0bddf5e096
remove workflow created manually
2020-03-17 10:21:51 -07:00
Benjamin Sergeant
946a8231e0
add ci to build documentation
2020-03-17 10:14:41 -07:00
Benjamin Sergeant
49d1e8493a
update build badge on doc
2020-03-17 10:09:41 -07:00
Benjamin Sergeant
6198657dd6
do not trigger unittest when the docs is changed
2020-03-17 08:54:31 -07:00
Benjamin Sergeant
385d6f5f4a
(doc) move tls options to its own section
2020-03-17 08:49:42 -07:00
Benjamin Sergeant
3919153a7b
close #164 / add reference to tls option which must be set to true in server mode
2020-03-17 08:45:39 -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
0bb5462504
Feature/ci windows ( #163 )
...
* win only
* disable ixcrypto mbedtls search on windows
* ws cmakefile do not search for openssl
* ci builds files on top of cmaking
* ci builds files on top of cmaking / syntax tweak
* use gha-setup-vsdevenv syntax
* build fix and hacks
* try to run unittest on win
* try to run unittest on win (syntax error)
* unittest wip
* wip
* wip again
* wip again (working-directory)
* cleanup
* dumb compile error
2020-03-15 18:38:09 -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
bda1bb6ab4
expose a way to set tls options for a sentry client, for testing
2020-03-12 16:18:28 -07:00
Benjamin Sergeant
d4e1f71e3c
(cobra2sentry bot) take a sentry client as input instead of a dsn
2020-03-12 12:30:58 -07:00
Benjamin Sergeant
adf6aa1d6c
(cobra2sentry bot) remove the jobs option passed to ws, and only use one sentry sender
2020-03-12 12:24:25 -07:00
Benjamin Sergeant
cb1f9f5a44
clang formatting
2020-03-12 12:15:56 -07:00
Benjamin Sergeant
83ae105edb
minor refactoring to delete files which are not needed
2020-03-12 12:13:31 -07:00
Benjamin Sergeant
7642ccc99e
(unittest) fix silly compile error with renaming of Logger to TLogger
2020-03-12 11:15:54 -07:00
Benjamin Sergeant
cb1ec7dc96
add unittest for cobra to sentry bots
2020-03-12 09:07:01 -07:00
Benjamin Sergeant
09b9483ddf
fix casing problem with cmake filename
2020-03-11 16:04:16 -07:00
Benjamin Sergeant
27a8ae309f
build failure on Linux
2020-03-11 15:59:48 -07:00
Benjamin Sergeant
3df7c942d7
move sentry and statsd cobra ws commands into a new ixbots folder
2020-03-11 15:55:56 -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
cb9f0cb968
(doc) mention that OpenSSL can be used on Windows
2020-03-11 10:18:48 -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
Rok Krhlikar
e581f29b42
Move zlib include_directories before add_subdirectory ( #159 )
2020-02-28 09:30:37 -08:00
Benjamin Sergeant
a42f115f79
compatibility: add node.js example server
2020-02-26 12:17:34 -08:00
Benjamin Sergeant
5ce1a596cf
add a python echo server that does not close the connection after each received messages
2020-02-26 12:11:31 -08:00
Benjamin Sergeant
21db7b6c5b
add a simple pytho echo client
2020-02-26 11:50:24 -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
c96abcef1c
build status github badge
2020-02-23 09:46:08 -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
feab4dee0f
split httpd test case into 2 test cases
2020-02-21 12:24:22 -08:00
Benjamin Sergeant
8175829b4b
unittest / add extra test for checking headers
2020-02-21 12:22:37 -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
ce9feeafdf
try to delete subtree usocket again
2020-02-12 10:08:42 -08:00
Benjamin Sergeant
415f0b3e6d
CI/CD no need to run redis anymore, as we have our fake limited one
2020-02-07 17:15:16 -08:00
Benjamin Sergeant
94431756ff
trigger a github action
2020-02-07 17:08:25 -08:00
Benjamin Sergeant
5f6c54bb90
(snake) add an option to disable answering pongs as response to pings, to test cobra client behavior with hanged connections
2020-01-31 16:55:54 -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
Olivia Zoe
68b318ab97
Doc update for Conan ( #146 )
...
* Doc update for Conan
* Migration notice
2020-01-17 07:15:41 -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
b96b3b099f
test broadcast server
2020-01-12 21:32:26 -08:00
Benjamin Sergeant
bb31612ebe
more doc
2020-01-12 11:16:54 -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
a01584ad9d
compatibility websocket server / add non ssl echo_server which does not run into the ssl error ( #140 )
2020-01-12 10:34:33 -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
0544cdedeb
fix broken autobahn link
2020-01-09 15:30:33 -08:00
Benjamin Sergeant
df0239ae68
poll: handle POLLNVAL
2020-01-09 13:45:58 -08:00
Benjamin Sergeant
c8bf2a0d82
formatting
2020-01-09 13:45:31 -08:00
Benjamin Sergeant
4d96804b22
ws send / detect disconnection earlier
2020-01-09 13:30:08 -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
28952cb0b0
ws send / check that we are connected when waiting for the send buffer to be flushed, and if so, abort
2020-01-09 12:16:12 -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
Benjamin Sergeant
1320e4ddaf
Windows ws build fix
2020-01-07 17:37:38 -08:00
Benjamin Sergeant
f4a7277d61
using centos8 for the default Dockerfile, to get a gdb that display source code when running on OpenShift
2020-01-07 14:58:40 -08:00
Matthew Albrecht
34d7b18c85
Allow configuration of Mbed TLS use. ( #142 )
...
* Allow configuration of Mbed TLS use.
* Added option for OpenSSL support.
* Fixed elseif/else mixup from 5ebad24040
2020-01-07 14:57:47 -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
c62ad5f466
add reference ssl echo server using websockets and nginx reverse proxy to terminate ssl
2020-01-05 15:26:35 -08:00
Benjamin Sergeant
effa115ed2
Merge commit 'c992cb4e42cc223f67ede0e48d7ff3f4947af0c6' as 'test/compatibility/C/uWebSockets'
2020-01-04 15:41:03 -08:00
Benjamin Sergeant
b9504fcd44
add another compatibility python client
2020-01-04 15:37:40 -08:00
Benjamin Sergeant
299bcd4b92
Add a simple python program to send a file (debugging #140 )
2020-01-04 15:18:02 -08:00
Benjamin Sergeant
f56098dd4c
(ws send) add option (-x) to disable per message deflate compression
2020-01-04 15:08:36 -08:00
Benjamin Sergeant
e0187b2d8e
fix typo in ws embedded help
2020-01-04 14:37:53 -08:00
Benjamin Sergeant
31682f5f2d
(ws send + receive) handle all message types (ping + pong + fragment) / investigate #140
2020-01-04 13:45:07 -08:00
Benjamin Sergeant
221087ffff
Install source code when making a Docker container
2020-01-04 13:44:02 -08:00
Benjamin Sergeant
c7fc4f0f8e
add user list in readme
2019-12-30 22:16:29 -08:00
Benjamin Sergeant
2eece1d11a
correct version number
2019-12-30 22:14:53 -08:00
Benjamin Sergeant
5ba05212ec
tag version
2019-12-30 17:17:28 -08:00
James Tyra
9e457871b4
Update IXSocketMbedTLS.cpp ( #139 )
...
fix bug with mbedtls server certificate loading.
2019-12-30 16:11:34 -08:00
James Tyra
b5481262fb
Update IXSocketMbedTLS.cpp ( #138 )
...
fix bug just introduced.
mbedstl_pk_setup() gets automatically called later.
2019-12-30 15:14:50 -08:00
James Tyra
98e98f083e
[2nd try] Update IXSocketMbedTLS.cpp ( #137 )
...
* Update IXSocketMbedTLS.cpp
fix initialization of mbedtls context.
without this, crashes under certain conditions.
* Update IXSocketMbedTLS.cpp
removed newline on 46
2019-12-30 14:38:25 -08:00
Benjamin Sergeant
d60777b9cc
clang-format
2019-12-30 08:46:18 -08:00
Benjamin Sergeant
8b5e42fe84
(ws cobra to sentry/statsd) fix for handling null events properly for empty queues + use queue to send data to statsd
2019-12-28 17:28:05 -08:00
Benjamin Sergeant
d89d152ad7
(ws cobra to sentry) handle null events for empty queues
2019-12-28 10:16:18 -08:00
Benjamin Sergeant
47a3736b24
(ws cobra to sentry) game is picked in a fair manner, so that all games get the same share of sent events
2019-12-27 19:10:15 -08:00
Benjamin Sergeant
1cd7cf340a
(ws cobra to sentry) refactor queue related code into a class
2019-12-27 18:24:45 -08:00
Benjamin Sergeant
3a25a05d9c
(ws cobra to sentry) bound the queue size used to hold up cobra messages before they are sent to sentry. Default queue size is a 100 messages. Without such limit the program runs out of memory when a subscriber receive a lot of messages that cannot make it to sentry
2019-12-25 22:15:57 -08:00
Benjamin Sergeant
d2acfd5d1f
(ws client) use correct compilation defines so that spdlog is not used as a header only library (reduce binary size and increase compilation speed)
2019-12-25 09:03:57 -08:00
Benjamin Sergeant
9dfcd8ea69
(ws client) all commands use spdlog instead of std::cerr or std::cout for logging
2019-12-24 21:55:34 -08:00
Benjamin Sergeant
ee65f95fe3
(cobra client) send a websocket ping every 30s to keep the connection opened
2019-12-24 17:16:41 -08:00
Benjamin Sergeant
b9cc6d7e23
(tls / apple) minor refactoring, move functions out of the anonymous namespace to become static member functions
2019-12-23 16:30:38 -08:00
Benjamin Sergeant
1e97e5e536
socket tls options: display ciphers
2019-12-23 12:25:25 -08:00
Benjamin Sergeant
440a1058b3
(doc) fix typo
2019-12-22 20:33:14 -08:00
Benjamin Sergeant
ff489515be
v7.6.4
2019-12-22 20:32:10 -08:00
Benjamin Sergeant
536a502b60
(client) error handling, quote url in error case when failing to parse on
2019-12-22 20:30:29 -08:00
Benjamin Sergeant
db0ff4ecd1
(ws) ws_cobra_publish: register callbacks before connecting
2019-12-22 20:29:37 -08:00
Benjamin Sergeant
e4aed56d72
(doc) mention mbedtls in supported ssl server backend
2019-12-22 20:28:44 -08:00
Benjamin Sergeant
1427a97dd9
update gitignore file
2019-12-20 15:21:36 -08:00
Benjamin Sergeant
d7318f97e6
(tls) add a simple description of the TLS configuration routine for debugging
2019-12-20 15:18:04 -08:00
Benjamin Sergeant
d1a4cab134
(mbedtls) correct support for using own certificate and private key
2019-12-20 15:13:26 -08:00
Benjamin Sergeant
8e7d310439
(ws commands) in websocket proxy, disable automatic reconnections + in Dockerfile, use alpine 3.11
2019-12-20 09:51:21 -08:00
Benjamin Sergeant
9347664622
(cobra) Add TLS options to all cobra commands and classes. Add example to the doc.
2019-12-19 20:49:28 -08:00
Benjamin Sergeant
4e240e4992
formatting
2019-12-19 19:13:55 -08:00
Benjamin Sergeant
626e190d91
(cobra-to-sentry) capture application version from device field
2019-12-18 15:41:59 -08:00
Benjamin Sergeant
1933da7044
IXSentryClient: remove duplicated line
2019-12-18 15:29:53 -08:00
Benjamin Sergeant
494f408320
(tls) Experimental TLS server support with mbedtls (windows) + process cert tlsoption (client + server)
2019-12-18 11:51:02 -08:00
Benjamin Sergeant
299afc1425
(tls servers) Make it clear that apple ssl and mbedtls backends do not support SSL in server mode
2019-12-18 10:43:05 -08:00
Benjamin Sergeant
0679b6399f
(tls options client) TLSOptions struct _validated member should be initialized to false
2019-12-17 14:10:28 -08:00
Benjamin Sergeant
862f8ea2d4
(websocket client) improve the error message when connecting to a non websocket server
2019-12-16 17:57:43 -08:00
Benjamin Sergeant
cae016564e
(server) attempt at fixing #131 by using blocking writes in server mode
2019-12-12 12:17:29 -08:00
Benjamin Sergeant
e223f8fac2
(ws) cobra to sentry - created events with sentry tags based on tags present in the cobra messages
2019-12-11 17:28:11 -08:00
Benjamin Sergeant
c86fa8ad3b
update spdlog
2019-12-06 22:05:12 -08:00
Benjamin Sergeant
ba4cf75e0f
(mac) convert SSL errors to utf8
2019-12-06 16:45:49 -08:00
Benjamin Sergeant
9f98628709
Add script to extract the version from the header file and remove DOCKER_VERSION
2019-12-06 16:44:05 -08:00
Benjamin Sergeant
0b2d816320
(ws) cobra to sentry. Handle Error 429 Too Many Requests and politely wait before sending more data to sentry
2019-12-05 15:59:29 -08:00
Benjamin Sergeant
8b1c4ff081
Using Alpine edge distribution to live on the edge
2019-12-05 15:46:01 -08:00
Benjamin Sergeant
fde0b717d3
sentry minidump upload timeout
2019-12-05 15:19:27 -08:00
Benjamin Sergeant
228cdca250
bunch of docker compose dev changes
2019-12-05 15:18:02 -08:00
Benjamin Sergeant
18386ae66f
(ws) #125 / fix build problem when jsoncpp is not installed locally
2019-12-03 17:18:16 -08:00
Benjamin Sergeant
5c5ea6dec1
(ws) #125 / cmake detects an already installed jsoncpp and will try to use this one if present
2019-12-03 16:01:46 -08:00
Olivia Zoe
2e1657167f
Meta: documentation fixes ( #127 )
...
* Clarify versions, minor punctuation fix
* Copyediting, borked URL
* Fix Python comments in C++ code
* Copyediting
* Pretty code
* Copyediting, pretty code
* Typo
* Pretty code
2019-12-03 09:28:18 -08:00
Benjamin Sergeant
c91a0d2a35
(http client) use std::unordered_map instead of std::map for HttpParameters and HttpFormDataParameters class aliases
2019-12-03 09:25:00 -08:00
Benjamin Sergeant
d465511812
[ #113 ] Mention StreamSSL as an example windows schannel implementation
2019-12-03 09:22:27 -08:00
Benjamin Sergeant
6b98694caa
(client) internal IXDNSLookup class requires a valid cancellation request function callback to be passed in
2019-12-02 14:52:19 -08:00
Benjamin Sergeant
d82e05f72d
(client) fix an overflow in the exponential back off code
2019-12-02 13:51:45 -08:00
Benjamin Sergeant
48622a24db
ws cobra_subscribe / sleep 1s instead of 10ms in the main loop
2019-12-02 09:52:52 -08:00
Benjamin Sergeant
94a274ced4
Improve the limitation section in the doc about TLS, cf bug #113
2019-12-02 09:52:05 -08:00
Benjamin Sergeant
a7977cf1a5
ws cobra subcommands / channel is not a positional argument anymore
2019-11-28 15:17:13 -08:00
Benjamin Sergeant
3fffd2ed0b
add doc about using ws to run a cobra server/publisher/subscriber
2019-11-27 09:26:45 -08:00
Benjamin Sergeant
a0d5f37402
(http client) Add support for multipart HTTP POST upload + (ixsentry) Add support for uploading a minidump to sentry
2019-11-25 21:11:11 -08:00
Benjamin Sergeant
1b11ef006a
Update README.md
2019-11-23 12:44:24 -08:00
Benjamin Sergeant
155bbfa984
On Darwin SSL, add ability to skip peer verification.
2019-11-20 13:58:08 -08:00
Benjamin Sergeant
89aae8b344
bump version for 32-bit fix
2019-11-20 11:35:07 -08:00
Benjamin Sergeant
28a0ba4768
tweaks to the test python proxy code / (moved here) https://gist.github.com/bsergean/bad452fa543ec7df6b7fd496696b2cd8
2019-11-20 11:32:21 -08:00
fcojavmc
708969c126
Compile bug ( #122 )
...
* 1) IXWebSocketTransport: BUG: int type has no warranty of number of bits. It depends on compiler and architecture. In my system (64 bit) is 32 bit.
1 << 63 is bad idea in this case because the final number is 0 by overflow.
The symptom observed is that the server can't receive messages.
2) IXSocketFactory: Compilation Warning: Variable not in use.
* Better aproach suggested by Benjamin.
2019-11-20 11:12:24 -08:00
Benjamin Sergeant
cc492bf1a3
add a python websocket proxy which works on Linux, while ws proxy_server does not
2019-11-18 13:46:11 -08:00
Benjamin Sergeant
901c21e499
ws proxy_server / remote server close not forwarded to the client
2019-11-16 14:21:44 -08:00
Benjamin Sergeant
16c6f08e2d
fix android build + proxy work
2019-11-16 06:51:53 -08:00
Benjamin Sergeant
6e9f27d63c
bump version
2019-11-15 17:19:06 -08:00
Benjamin Sergeant
5b282ce3b4
document new proxy command
2019-11-15 17:18:32 -08:00
Benjamin Sergeant
c7b2446164
proxy works but crash when the connection is refused
2019-11-15 17:07:31 -08:00
Benjamin Sergeant
0e43c618a5
add stub code for ws proxy server
2019-11-15 14:30:20 -08:00
Benjamin Sergeant
af6100b90f
fix typo
2019-11-15 14:28:30 -08:00
Benjamin Sergeant
a4cd248368
update readme / add contributing notes
2019-11-15 14:21:28 -08:00
Benjamin Sergeant
6e52723c8c
update changelog
2019-11-06 23:12:45 -08:00
Benjamin Sergeant
a3ad92b9d9
update readme
2019-11-06 23:12:45 -08:00
Benjamin Sergeant
b07827790f
check max frame size ( #119 )
2019-10-28 21:53:31 -07:00
Benjamin Sergeant
85e00a195c
docker build fixes
2019-10-26 11:47:08 -07:00
Benjamin Sergeant
081dd2c4bb
Add unittest to IXSentryClient to lua backtrace parsing code
2019-10-26 10:54:47 -07:00
Benjamin Sergeant
bbfa76a2c9
move sentry code around and add a stub unittest for it
2019-10-25 14:54:31 -07:00
Benjamin Sergeant
16a060131a
ws cobra to sentry / simplify sent and received message statistic reporting
2019-10-25 14:34:48 -07:00
Benjamin Sergeant
6dabc68d29
remove unused quiet argument of ws cobra_metrics_to_redis command
2019-10-25 14:02:56 -07:00
Benjamin Sergeant
ac0593bfb3
Add cobra_metrics_to_redis sub-command to create streams for each cobra metric event being received.
2019-10-24 14:42:36 -07:00
Benjamin Sergeant
ac3e9eab25
Create SECURITY.md
2019-10-17 06:58:22 -07:00
Benjamin Sergeant
6de426a574
remove unused code in ws cobra_publish
2019-10-14 11:15:14 -07:00
Benjamin Sergeant
c3a619f114
Add client support for websocket subprotocol. Look for the new addSubProtocol method for details
2019-10-13 13:37:34 -07:00
Benjamin Sergeant
128545cc2b
OpenSSL: add an extra cipher to the default cipher set, which let us connect to wss//echo.websocket.org
2019-10-10 09:37:27 -07:00
Benjamin Sergeant
8152898c4e
add more docs about ws
2019-10-09 22:42:03 -07:00
Benjamin Sergeant
852bf452b6
Freebsd ( #117 )
...
* add file
* CMake freebsd fix
2019-10-09 17:00:32 -07:00
Benjamin Sergeant
b38e80f846
(freebsd compile fix) add some missing socket related headers
2019-10-09 15:38:40 -07:00
Benjamin Sergeant
a383ac10d9
make sure the unittest pass withouth SSL
2019-10-03 09:41:17 -07:00
Benjamin Sergeant
2c32f5c593
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
41cbee2cd2
ws: Signal handling code isn't include on Windows
2019-10-01 16:12:32 -07:00
Benjamin Sergeant
1f8944852a
bump version
2019-10-01 16:01:32 -07:00
Benjamin Sergeant
95dd03b298
Add mbed tls version in user agent string + set user agent properly when enabling openssl on macOS
2019-10-01 15:58:35 -07:00
Benjamin Sergeant
a0cfaff528
Implement SSL server with OpenSSL backend / still flaky
2019-10-01 15:43:37 -07:00
Benjamin Sergeant
d6542383ed
Add --tls option to pass to ws server command, to enable/disable tls
2019-10-01 13:54:46 -07:00
Benjamin Sergeant
afed387bcf
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
313949f087
SocketServer::handleConnection takes an std::shared_ptr<Socket> instead of a file descriptor
2019-09-30 21:48:55 -07:00
Benjamin Sergeant
e5c8e2e7f4
openSSLHandshake -> openSSLClientHandshake
2019-09-30 21:24:25 -07:00
Benjamin Sergeant
845bbc5208
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
7a26ff4de8
clang-format
2019-09-30 17:52:39 -07:00
Benjamin Sergeant
a1f3c40a2d
ws has a --version option
2019-09-30 17:31:33 -07:00
Benjamin Sergeant
1fdbc2bc22
bump version number
2019-09-29 22:10:07 -07:00
Benjamin Sergeant
0f4def2338
fix windows compile error in include/spdlog/details/pattern_formatter-inl.h
2019-09-29 22:00:57 -07:00
Benjamin Sergeant
7939f7ad50
docs: WITH_TLS => USE_TLS
2019-09-29 21:31:13 -07:00
Matt DeBoer
8bfc3c5ea6
document basic usage
2019-09-29 21:29:28 -07:00
Benjamin Sergeant
bf46f3fe8f
unittest / specify a cacert for tls client tests
2019-09-29 21:24:22 -07:00
Benjamin Sergeant
55141aa875
ws curl + http client tls option handling + ca cert processing for mbedtls
2019-09-29 21:13:11 -07:00
Benjamin Sergeant
4e4792d6dc
update copyright dates and authors
2019-09-29 20:09:51 -07:00
Benjamin Sergeant
2aca019d84
openssl client: handle TLS options
2019-09-29 20:07:53 -07:00
Benjamin Sergeant
864249b62d
most ws command take tls options, no-op for now (contributed by Matt DeBoer)
2019-09-29 18:29:51 -07:00
Benjamin Sergeant
d1fb34694c
SocketTLSOptions: more methods (contributed by Matt DeBoer)
2019-09-29 17:35:18 -07:00
Benjamin Sergeant
d1fc31b894
ws transfer + send + receive / improved logging (contributed by Matt DeBoer)
2019-09-29 17:21:52 -07:00
Benjamin Sergeant
f6bf2531bb
Add ability to use OpenSSL on apple platforms.
2019-09-29 15:34:58 -07:00
Benjamin Sergeant
681390f22f
update and change how we build with spdlog
2019-09-29 11:13:24 -07:00
Benjamin Sergeant
0ee675e554
ixcobra / fix crash in CobraConnection::publishNext when the queue is empty + handle CobraConnection_PublishMode_Batch in CobraMetricsThreadedPublisher
2019-09-28 10:36:47 -07:00
Benjamin Sergeant
7e1a60e61d
DNS lookup test works on windows
2019-09-27 14:34:47 -07:00
Benjamin Sergeant
4cd11fdbc7
mbedtls fixes / the unittest now pass on macOS, and hopefully will on Windows/AppVeyor as well.
2019-09-27 14:07:01 -07:00
Benjamin Sergeant
05c7a26e3a
Export port 8008 for Docker + test_ws.sh is /bin/sh compatible
2019-09-26 14:36:14 -07:00
Benjamin Sergeant
6762978ddf
http server unittest + refactoring
2019-09-26 09:45:59 -07:00
Benjamin Sergeant
658650cf24
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
8a662b35e1
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
3cd7c0194f
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
05f29639e5
fix doc
2019-09-24 15:42:28 -07:00
Benjamin Sergeant
5c18ffdae2
speedup base64 code by reserving memory
2019-09-24 14:17:03 -07:00
Benjamin Sergeant
d3cee46e93
wrong mutex being used ...
2019-09-24 14:10:41 -07:00
Benjamin Sergeant
94c589f696
Fix 2 race conditions detected with TSan, one in CobraMetricsPublisher::push and another one in WebSocketTransport::sendData (that one was bad).
2019-09-24 11:46:54 -07:00
Benjamin Sergeant
490fbf4cb5
try to enable more tests on windows
2019-09-23 21:52:32 -07:00
Benjamin Sergeant
d46ce7eb63
fix tsan errors on macOS when running the unittest
2019-09-23 21:51:55 -07:00
Benjamin Sergeant
169e225ccd
fix warning + add redis server logging
2019-09-23 21:14:20 -07:00
Benjamin Sergeant
ceb0c602c9
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
95722e3bbb
fix linux compilation error, by ordering dependant libraries properly
2019-09-23 12:32:04 -07:00
Benjamin Sergeant
1cde26771a
move snake code to its own subfolder like ixcobra, ixcrypto, etc...
2019-09-23 11:46:16 -07:00
Benjamin Sergeant
cd3c9d879c
reformat everything with clang-format
2019-09-23 10:25:23 -07:00
Benjamin Sergeant
398c4fbf99
fix unittest
2019-09-22 19:40:33 -07:00
Benjamin Sergeant
e7b4a985b4
fix unittest compiler warnings
2019-09-22 19:22:48 -07:00
Benjamin Sergeant
6f76fea188
compile fixes
2019-09-22 18:52:57 -07:00
Benjamin Sergeant
f6b8e7f234
add gihub actions
2019-09-22 18:45:30 -07:00
Benjamin Sergeant
041fa3e340
compiled fixes on mac and windows
2019-09-22 18:43:57 -07:00
Matt DeBoer
408ee41990
WIP: support configurable certificates/keys, and root trust CAs ( #114 )
...
* wip: tls options implemented in openssl
* update naming, remove #define guard
* assert compiled with USE_TLS for tls options
* apply autoformatter
* include tls options impl
* style cleanup; auto ssl_err
* ssl_err -> sslErr
* be explicit about SSL_VERIFY_NONE
2019-09-22 18:06:15 -07:00
Benjamin Sergeant
ed4be773a2
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
fcdb57f31d
missing file in ws tool
2019-09-19 12:51:34 -07:00
Benjamin Sergeant
47b3368f78
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
20ce498d23
On error while doing a client handshake, additionally display port number next to the host name
2019-09-17 12:08:52 -07:00
Benjamin Sergeant
354c9b412e
rename test file
2019-09-17 12:07:31 -07:00
Benjamin Sergeant
1c08cedd8a
make test target does not try to install anything into /usr/local
2019-09-12 11:45:31 -07:00
Benjamin Sergeant
e2121d809e
fix unittest warnings + remove trailing spaces
2019-09-12 11:43:52 -07:00
Benjamin Sergeant
9c1065bc1b
update pre-commit file
2019-09-10 22:18:16 -07:00
Benjamin Sergeant
27136bbce8
update clang format file
2019-09-10 22:17:08 -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
427db5bd59
Fix Windows CI with appveyor ( #110 )
...
Fix windows CI with appveyor + minor tweaks.
2019-09-07 14:07:00 -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
30b83b5ff0
Update README.md
2019-09-05 14:30:51 -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
7a73ec7c06
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
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
ozychhi
93debc00dc
Add client handshake extra headers ( #105 )
...
Even though 6455 defines all the necessary headers needed for
client/server handshake, in practice most of the cases websocket servers
expect few more headers. Therefore adding this functionality.
2019-08-26 09:37:40 -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
Benjamin Sergeant
5b73edec8c
make IXDNSLookup more robust
2019-06-26 19:12:48 -07:00
Benjamin Sergeant
3750781bce
simplify IXDNSLookup
2019-06-26 16:25:07 -07:00
Benjamin Sergeant
e646e53dac
use poll instead of select in SocketServer
2019-06-25 17:18:24 -07:00
Benjamin Sergeant
6b8aa43ec0
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
e8a20c7e8a
refactor select code + add protection against large fds (cf Android 9)
2019-06-25 15:41:39 -07:00
Benjamin Sergeant
0423ed01a6
Add extra check in IXWebSocketCloseTest.cpp
2019-06-25 14:10:39 -07:00
Benjamin Sergeant
4a600c2611
select refactoring IXSocket::select -> IXSocket::poll
2019-06-25 10:16:40 -07:00
Benjamin Sergeant
e5faa23d4f
disable CI on Windows
2019-06-25 00:28:11 -07:00
Benjamin Sergeant
b2f9c219b1
cmake use_tls fix
2019-06-24 23:34:31 -07:00
Benjamin Sergeant
77d65760f0
do not build mbedtls on ci
2019-06-24 23:28:35 -07:00
Benjamin Sergeant
98d0460af0
try to disable TLS for unittesting
2019-06-24 23:27:44 -07:00
Benjamin Sergeant
de8d93341c
CI / build zlib and mbedtls locally
2019-06-24 23:17:19 -07:00
Benjamin Sergeant
0b6a773087
CI work
2019-06-24 10:17:57 -07:00
Benjamin Sergeant
dc1aa676c4
try to activate CI on windows again
2019-06-23 18:32:18 -07:00
Benjamin Sergeant
5ae9cc1cd7
bump docker version
2019-06-23 18:17:24 -07:00
Benjamin Sergeant
f84bc53c8d
Feature/httpd ( #94 )
...
* Stub code for http server
* can send a response, cannot process body yet
* write headers to the response
* remove commented code
* add simple test + set default http handler
* tweak CI + unittest
* add missing file
* rewrite http::trim in a simple way
* doc
2019-06-23 14:54:21 -07:00
Benjamin Sergeant
b26e9d0338
IXDNSLookup. Uses weak pointer + smart_ptr + shared_from_this instead of static sets + mutex to handle object going away before dns lookup has resolved
2019-06-19 00:43:59 -07:00
Benjamin Sergeant
dbd62b8622
cobra_to_sentry / backtraces are reversed and line number is not extracted correctly
2019-06-13 10:18:40 -07:00
Benjamin Sergeant
20c80352bf
disable windows on CI for now
2019-06-10 22:10:43 -07:00
Benjamin Sergeant
9d70fb2b86
disable building ws on windows on travis
2019-06-10 22:01:19 -07:00
Benjamin Sergeant
71aad26d44
(cmake) missing find_package(Threads) on UNIX
2019-06-10 13:39:22 -07:00
Benjamin Sergeant
3a1918eb2f
Add -DUSE_VENDORED_THIRD_PARTY=1 to build ws
2019-06-10 13:26:41 -07:00
Benjamin Sergeant
a1709c07d9
- mbedtls and zlib are searched with find_package, and we use the vendored version if nothing is found
2019-06-10 11:18:27 -07:00
Benjamin Sergeant
b8c1176c79
- travis CI uses g++ on Linux
2019-06-09 14:27:45 -07:00
Benjamin Sergeant
03b5a57474
compile error in IXWebSocketMessageQTest
2019-06-09 12:25:36 -07:00
Benjamin Sergeant
f58cf4826a
fix IXWebSocketMessageQTest.cpp
2019-06-09 12:08:00 -07:00
Benjamin Sergeant
d050cc5e13
fix changelog
2019-06-09 12:02:38 -07:00
Benjamin Sergeant
6ef88b6303
update README to reflect the new API
2019-06-09 12:02:02 -07:00
Benjamin Sergeant
3e15840b14
- WebSocket::send() sends message in TEXT mode by default
...
- WebSocketMessage sets a new binary field, which tells whether the received incoming message is binary or text
2019-06-09 11:56:47 -07:00
Benjamin Sergeant
0d147cbd94
WebSocket::send takes a third arg, binary which default to true (can be text too)
2019-06-09 11:35:31 -07:00
Benjamin Sergeant
be93f7480a
WebSocket callback only take one object, a const ix::WebSocketMessagePtr& msg
2019-06-09 11:33:17 -07:00
Benjamin Sergeant
2e5f24f1f8
...
2019-06-09 10:22:27 -07:00
Benjamin Sergeant
23cf4bd59b
Add explicite WebSocket::sendBinary
...
New headers + WebSocketMessage class to hold message data, still not used across the board
2019-06-09 10:10:33 -07:00
Benjamin Sergeant
051c34bc5d
Add test/compatibility folder with small servers and clients written in different languages and different libraries to test compatibility.
2019-06-08 09:46:26 -07:00
Benjamin Sergeant
9623ceb4d5
ws echo_server has a -g option to print a greeting message on connect
2019-06-08 09:16:33 -07:00
Benjamin Sergeant
e1a7395880
IXSocketMbedTLS: better error handling in close and connect
2019-06-06 14:59:22 -07:00
Benjamin Sergeant
51aeeca024
add a changelog
2019-06-06 13:59:12 -07:00
Benjamin Sergeant
076e8bf6a3
add an option to easily disable per message deflate compression
2019-06-06 13:48:53 -07:00
Benjamin Sergeant
73c5b9b847
fix Dockerfile link
2019-06-05 19:38:44 -07:00
Benjamin Sergeant
f4f3eed78d
cobra to sentry / more error handling
2019-06-05 19:37:51 -07:00
Benjamin Sergeant
89909c15bc
cobra to sentry fixes
2019-06-05 18:47:48 -07:00
Benjamin Sergeant
78b3d7ff2d
Feature/http async ( #90 )
...
* unittest working / uses shared_ptr for a bunch of things 🗿
* fix command line tools
* fix ws + add doc
* add more logging
2019-06-05 17:04:24 -07:00
Benjamin Sergeant
012193c74e
Fix compile error with JSON uint64_t 🚯
2019-06-04 13:45:29 -07:00
Benjamin Sergeant
539abe5151
HttpResponse is a struct, not a tuple 🉐
2019-06-03 22:12:52 -07:00
Benjamin Sergeant
7e5aba140e
http / PUT fix 🐚
2019-06-03 21:12:39 -07:00
Benjamin Sergeant
6b933391e5
http client: stop hardcoding Accept header, and use a default value if one is passed in 👭
2019-06-03 14:02:54 -07:00
Benjamin Sergeant
1e2a5ee21d
Add simple HTTP and HTTPS client test ㊙️
2019-06-03 12:23:35 -07:00
Benjamin Sergeant
225a5ef808
(http client) / Add DEL and PUT method, make requests and other utilities public 👐
2019-06-03 11:38:56 -07:00
Benjamin Sergeant
396d0d9bdc
Feature/ws windows ( #86 )
...
* try to build ws on window on travis 📮
* cmake invocation fixed on windows 🐝
* Can use mbedtls to calculate hmac + no openssl config option
* build only windows on travis 🕢
* run msbuild 💷
* proper command to build 🕛
* some build fixes
* change weird sizeof call 🐙
* warning and missing includes fixes 💮
* ifdef out statsd code on windows 🐍
* logic invertion in ifdef 👄
* bring back makefile 📜
* command line tool is built with mbedtls 🏥
2019-06-02 20:46:20 -07:00
Benjamin Sergeant
88c8fb74bb
play with podmena ♓
2019-06-02 11:03:44 -07:00
Benjamin Sergeant
fd902c7a58
add notes about mbedtls CMake
2019-06-01 18:00:25 -07:00
Benjamin Sergeant
06cbebe22e
Feature/mbedtls ( #84 )
...
* try to import mbedtls and build it
* add stubs socket class
* some boilterplate, read and write function implemented
* more boilterplate / current error in handshake because no CA cert is setup
* add something so skip ca verification, can ws curl https://google.com !
* cleanup / close implemented
* tweak CMakefiles
* typo in include
* update readme
* disable unittests
2019-06-01 17:41:48 -07:00
Benjamin Sergeant
ba4a9e1586
(clang format) fix indent and make (rarely) accessor/setters in class on a single line
2019-05-31 00:53:14 -07:00
Benjamin Sergeant
285386e47f
fix cobra to sentry + change ws docker file to use alpine (much smaller footprint)
2019-05-31 00:43:22 -07:00
Benjamin Sergeant
c65fec7271
clang format, based on cpprest
2019-05-30 08:46:50 -07:00
Benjamin Sergeant
879a4b38aa
std::chrono::duration is not initialized to 0 units of time
2019-05-26 14:16:15 -07:00
Benjamin Sergeant
13c87e38ed
do not select on a closed file descriptor (doing so crash on Android)
2019-05-22 18:58:22 -07:00
Benjamin Sergeant
718154cfb4
enable IXWebSocketMessageQTest.cpp on mac and windows
2019-05-22 11:03:13 -07:00
Kumamon38
26de9b9714
Clean ( #82 )
...
Thanks
2019-05-21 12:14:58 -07:00
Kumamon38
3365facf9f
Fix ping ( #80 )
...
* let poll do his job when closing
* try fix test
* try fix test
* Update IXWebSocketTransport.cpp
* add log to find issue on CI
* add log to find issue on CI
* add log to find issue on CI
* add log to find issue on CI
* add log to find issue on CI
* change state immediately, and send close frame after
* add immediate close test
* disable test for windows
* reenable ping / ping timeout tests
* add time to let windows close client
* reenable ping timeout test
* add 100ms more
* disable test for windows
2019-05-21 09:35:41 -07:00
Kumamon38
8a4826164b
fix close bug and tests : let poll do his job when closing ( #79 )
...
* let poll do his job when closing
* try fix test
* try fix test
* Update IXWebSocketTransport.cpp
* add log to find issue on CI
* add log to find issue on CI
* add log to find issue on CI
* add log to find issue on CI
* add log to find issue on CI
* change state immediately, and send close frame after
* add immediate close test
* disable test for windows
2019-05-21 09:34:08 -07:00
Benjamin Sergeant
d6eabae4f0
one cpu on windows for executing tests
2019-05-17 15:45:31 -07:00
Benjamin Sergeant
6bd81bb92e
add back IXWebSocketMessageQueue, with its unittest disabled
2019-05-16 22:41:39 -07:00
Benjamin Sergeant
126a91dfec
Linux build fix: strncpy needs <string.h>
2019-05-16 22:21:15 -07:00
Benjamin Sergeant
51fa147b99
Revert "Merge branch 'Dimon4eg-message-queue'"
...
This reverts commit 13fa325134 , reversing
changes made to aecd5e9c94 .
2019-05-16 22:15:17 -07:00
Benjamin Sergeant
6160877167
Fix Address Sanitizer heap-buffer-overflow in WebSocketHandshakeKeyGen::generate
...
=================================================================
==5077==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6070000077e0 at pc 0x00010ba18c54 bp 0x70000dd45b10 sp 0x70000dd45b08
READ of size 1 at 0x6070000077e0 thread T12
#0 0x10ba18c53 in WebSocketHandshakeKeyGen::generate(char const*, char*) libwshandshake.hpp:113
#1 0x10ba2065a in ix::WebSocketHandshake::serverHandshake(int, int) IXWebSocketHandshake.cpp:356
#2 0x10b9c4952 in ix::WebSocketTransport::connectToSocket(int, int) IXWebSocketTransport.cpp:190
#3 0x10b97e4c2 in ix::WebSocket::connectToSocket(int, int) IXWebSocket.cpp:193
2019-05-16 21:59:03 -07:00
Benjamin Sergeant
717f049579
Merge branch 'Dimon4eg-message-queue'
2019-05-16 19:26:45 -07:00
Benjamin Sergeant
f71331056c
bring back socket mutex which is needed, some CI failures are happening without it
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
c131ff2662
disable socket mutex usage in WebSocketTransport
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
616447e01d
remove dead code
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
8c1d66bcf3
refactor connect unittest so that it hits a local server instead of a remote server
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
bea580b906
travis makefile fix
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
c513e02b24
try to run ws test on linux + macOS on travis
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
90d71deb0f
Add constants for closing code and messages
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
fc0776303a
first socket test hit a local server instead of a remote server / this can help with a windows intermittent failure
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
bb0c6f9a8a
build ws on travis (mac + linux)
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
dae21e7681
use a regular mutex instead of a recursive one + stop properly
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
d28437ecc0
adding logging to IXWebSocketTestConnectionDisconnection makes it fails reliably
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
7fec24af67
Update README.md
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
0de3637569
Update README.md
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
f94c7cef59
-j option actually work ...
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
7734d63b1b
unittest / add options to set the number of jobs
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
f894504761
enum class HttpErrorCode derives from int
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
7aa9b4ee64
try to re-enable some tests
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
a12250dc16
recursive mutex + enable test that was breaking on Ubuntu Xenial + gcc + tsan
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
d8fbe1a63e
comment failing test
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
91e1760719
comment failing test
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
02c8a62e7d
do not build ws for now on travis
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
0c9bcfb8ac
more protection against socket when closing
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
bd4c5037c7
fix compile errors with C++ enum class
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
ccaaedf38f
close and stop with code and reason + docker = ubuntu xenial
2019-05-16 19:23:32 -07:00
Dimon4eg
751f294164
add isEnabledAutomaticReconnection ( #75 )
...
* add isEnabledAutomaticReconnection
* test isEnabledAutomaticReconnection
* rename
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
e2acbe8499
Revert "Revert "fix cast warning caught on windows""
...
This reverts commit 25eaf730bc .
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
aba880a6b3
Revert "fix cast warning caught on windows"
...
This reverts commit 4edb7447df .
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
616e8da0a5
fix cast warning caught on windows
2019-05-16 19:23:32 -07:00
Kumamon38
a220774a3b
add more time to let client close ( #73 )
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
4fc8224264
build with gcc on Linux
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
66dae5840c
use spdlog for logging in the unittest
2019-05-16 19:23:32 -07:00
Benjamin Sergeant
89b9e6e531
fix inverted conditional
2019-05-16 19:23:31 -07:00
Benjamin Sergeant
fc4623381a
server code / add dedicated thread to close/join terminated connection threads
2019-05-16 19:23:31 -07:00
Benjamin Sergeant
1023e925f6
travis cmake version on macOS does not know --parallel option
2019-05-16 19:23:31 -07:00
Benjamin Sergeant
5d65365751
build in parallel + stop building linux + clang
2019-05-16 19:23:31 -07:00
Benjamin Sergeant
ee64a6ec7e
disable ping tests for now as they are not super reliable
2019-05-16 19:23:31 -07:00
Benjamin Sergeant
9bc09105d7
Feature/windows ci ( #76 )
...
* close with params
* ...
* different generator
* core size = 1
* disable more tests to get something working on windows
* try to enable another test on windows
* enable all OS
* set proper version of linux
* another try
* try again with just env variables
* Revert "core size = 1"
This reverts commit 29af74bba6 .
* add windows and mac
* Revert "close with params"
This reverts commit 6bb00b6788 .
2019-05-16 19:23:31 -07:00
Kumamon38
4b96632a69
save timepoints after connect and not in contructor, adjusted tests ( #72 )
...
* save timepoints after connect and not in contructor, adjusted tests
* move call into setReadyState
* more time to detect client close in test
2019-05-16 19:20:29 -07:00
Dimon4eg
22a806ca6f
fix for Windows ( #69 )
...
* fix for Windows
* fix condition
* make condition only on Windows
2019-05-16 19:20:29 -07:00
Dimon4eg
d8dc977fc1
Fix run.py ( #71 )
...
* fix run.py
* run.py: fix Windows support
* fix test listing
2019-05-16 19:20:29 -07:00
Benjamin Sergeant
6d900b8ffb
bring back socket mutex which is needed, some CI failures are happening without it
2019-05-16 15:58:20 -07:00
Benjamin Sergeant
5a2c070898
disable socket mutex usage in WebSocketTransport
2019-05-16 15:46:32 -07:00
Benjamin Sergeant
58f17ddb09
remove dead code
2019-05-16 15:05:20 -07:00
Benjamin Sergeant
47c9786bab
refactor connect unittest so that it hits a local server instead of a remote server
2019-05-16 14:25:31 -07:00
Benjamin Sergeant
e5edbeacb4
travis makefile fix
2019-05-16 14:02:24 -07:00
Benjamin Sergeant
964fb20df9
try to run ws test on linux + macOS on travis
2019-05-16 13:57:33 -07:00
Benjamin Sergeant
309ed80446
Add constants for closing code and messages
2019-05-16 12:46:53 -07:00
Benjamin Sergeant
01f2eb6615
first socket test hit a local server instead of a remote server / this can help with a windows intermittent failure
2019-05-16 12:24:58 -07:00
Benjamin Sergeant
3a55c7aaba
build ws on travis (mac + linux)
2019-05-16 07:01:15 -07:00
Benjamin Sergeant
243f41bf28
use a regular mutex instead of a recursive one + stop properly
2019-05-15 19:26:02 -07:00
Benjamin Sergeant
934b28f5b6
adding logging to IXWebSocketTestConnectionDisconnection makes it fails reliably
2019-05-15 19:26:02 -07:00
Benjamin Sergeant
edfc03bed2
Update README.md
2019-05-15 19:22:05 -07:00
Benjamin Sergeant
59ce71b64d
Update README.md
2019-05-15 18:57:17 -07:00
Benjamin Sergeant
d473a7dc22
-j option actually work ...
2019-05-15 18:15:45 -07:00
Benjamin Sergeant
efb063d600
unittest / add options to set the number of jobs
2019-05-15 17:52:03 -07:00
Benjamin Sergeant
12fe55905c
enum class HttpErrorCode derives from int
2019-05-15 16:50:00 -07:00
Benjamin Sergeant
aed831c075
try to re-enable some tests
2019-05-15 16:28:29 -07:00
Benjamin Sergeant
5ad15fad8b
recursive mutex + enable test that was breaking on Ubuntu Xenial + gcc + tsan
2019-05-15 16:01:05 -07:00
Benjamin Sergeant
a7d328896c
comment failing test
2019-05-15 15:44:14 -07:00
Benjamin Sergeant
1274a151d0
comment failing test
2019-05-15 15:37:30 -07:00
Benjamin Sergeant
d93d639345
do not build ws for now on travis
2019-05-15 15:26:49 -07:00
Benjamin Sergeant
e0d9a16985
more protection against socket when closing
2019-05-15 15:18:46 -07:00
Benjamin Sergeant
7f1070dde6
fix compile errors with C++ enum class
2019-05-15 15:18:46 -07:00
Benjamin Sergeant
7f1e70329c
close and stop with code and reason + docker = ubuntu xenial
2019-05-15 15:18:46 -07:00
Dimon4eg
186c8fbb62
add isEnabledAutomaticReconnection ( #75 )
...
* add isEnabledAutomaticReconnection
* test isEnabledAutomaticReconnection
* rename
2019-05-14 11:26:37 -07:00
Benjamin Sergeant
c935be6a49
Revert "Revert "fix cast warning caught on windows""
...
This reverts commit 25eaf730bc .
2019-05-13 22:16:49 -07:00
Benjamin Sergeant
4ee502fa1a
Revert "fix cast warning caught on windows"
...
This reverts commit 4edb7447df .
2019-05-13 21:35:34 -07:00
Benjamin Sergeant
084805b248
fix cast warning caught on windows
2019-05-13 21:29:47 -07:00
Kumamon38
eaebd258c0
add more time to let client close ( #73 )
2019-05-13 21:26:34 -07:00
Benjamin Sergeant
2843a20814
build with gcc on Linux
2019-05-13 17:35:21 -07:00
Benjamin Sergeant
08a56726a8
use spdlog for logging in the unittest
2019-05-13 17:32:57 -07:00
Benjamin Sergeant
7cad8654e5
fix inverted conditional
2019-05-13 17:18:07 -07:00
Benjamin Sergeant
841cfe37dd
server code / add dedicated thread to close/join terminated connection threads
2019-05-13 17:17:35 -07:00
Benjamin Sergeant
849a41293f
travis cmake version on macOS does not know --parallel option
2019-05-13 17:17:35 -07:00
Benjamin Sergeant
5b17edb3f9
build in parallel + stop building linux + clang
2019-05-13 17:06:56 -07:00
Benjamin Sergeant
9f2047dad6
disable ping tests for now as they are not super reliable
2019-05-13 17:01:22 -07:00
Benjamin Sergeant
c01c53c5c7
Feature/windows ci ( #76 )
...
* close with params
* ...
* different generator
* core size = 1
* disable more tests to get something working on windows
* try to enable another test on windows
* enable all OS
* set proper version of linux
* another try
* try again with just env variables
* Revert "core size = 1"
This reverts commit 29af74bba6 .
* add windows and mac
* Revert "close with params"
This reverts commit 6bb00b6788 .
2019-05-13 16:51:58 -07:00
Kumamon38
27bf1684cb
save timepoints after connect and not in contructor, adjusted tests ( #72 )
...
* save timepoints after connect and not in contructor, adjusted tests
* move call into setReadyState
* more time to detect client close in test
2019-05-13 09:08:46 -07:00
Dimon4eg
be2aee3354
fix for Windows ( #69 )
...
* fix for Windows
* fix condition
* make condition only on Windows
2019-05-12 22:21:56 -07:00
Dimon4eg
5f42a07d0d
Fix run.py ( #71 )
...
* fix run.py
* run.py: fix Windows support
* fix test listing
2019-05-12 18:37:22 -07:00
dimon4eg
8a94c945b7
Merge branch 'master' into message-queue
2019-05-12 22:00:10 +03:00
Benjamin Sergeant
7740028291
all derived class use final keyword
2019-05-12 11:43:21 -07:00
dimon4eg
7369e9c233
add setOnMessageCallback with r-value
2019-05-12 20:59:18 +03:00
dimon4eg
8c66825a78
correct style
2019-05-12 20:16:02 +03:00
dimon4eg
a56f8272a9
fix warnings
2019-05-12 20:05:28 +03:00
dimon4eg
e846ca392f
update comment
2019-05-12 20:00:15 +03:00
dimon4eg
f9ec89cf7a
update test
2019-05-12 19:57:31 +03:00
dimon4eg
b935bc526a
added message queue test
2019-05-12 01:50:41 +03:00
dimon4eg
97617ced4a
Added WebSocketMessageQueue
2019-05-12 01:49:06 +03:00
Benjamin Sergeant
d575c7c2a9
bump version to 2.0.0
2019-05-11 14:22:41 -07:00
Dimon4eg
99a3bbc4f9
use C++11 enums ( #67 )
...
* use C++11 enums
* small rename
* update tests
* update tests
* update ws
* update ws
* update README.md
2019-05-11 14:22:06 -07:00
Benjamin Sergeant
80226cb7d3
add comment about why a unittest is disabled
2019-05-11 12:25:40 -07:00
Benjamin Sergeant
6189e0cd50
remove irrelevant comment
2019-05-11 12:24:11 -07:00
Dimon4eg
2254421ead
minor improvements ( #66 )
...
* minor improvements
* fix build
* improve tests code
2019-05-11 12:20:58 -07:00
Benjamin Sergeant
4934f5846b
minor tweaks to have full feature parity before unittest broke
2019-05-11 11:54:21 -07:00
Benjamin Sergeant
c8c1aabf20
fix race condition in SelectInteruptPipe, where _fildes are not protected (caught by fedora tsan)
2019-05-11 11:45:26 -07:00
Dimon4eg
93b901a286
remove more iostream includes ( #65 )
2019-05-11 11:27:58 -07:00
Benjamin Sergeant
518a445074
rename some variables, minor cleanup
2019-05-11 10:24:28 -07:00
dimon4eg
080a6db657
uncomment test
2019-05-11 10:15:22 -07:00
dimon4eg
d49b1bd78a
fix crash on close
2019-05-11 10:15:22 -07:00
Dimon4eg
bd96050d84
fix crash on close
2019-05-11 10:12:33 -07:00
Dimon4eg
2a90ad9e53
Fix crash during closing on Windows ( #64 )
...
* fix crash on close
* Improve calculateRetryWaitMilliseconds (#63 )
* improve calculateRetryWaitMilliseconds
* update comment
* cout -> spdlog
* fix crash on close
* uncomment test
* Revert "uncomment test"
This reverts commit 27df86ee8f .
2019-05-11 09:51:26 -07:00
Benjamin Sergeant
16758293ff
fix warning in statsd_client about %m gnu only printf special char
2019-05-11 09:22:29 -07:00
Benjamin Sergeant
e965322a98
fix overflow warning in msgpack11.cpp
2019-05-10 21:17:05 -07:00
Benjamin Sergeant
fcf5c41b43
add env var to display the ws command typed in
2019-05-10 16:27:23 -07:00
Benjamin Sergeant
88adbf0ca2
cout -> spdlog
2019-05-10 12:33:34 -07:00
Dimon4eg
3df142db7a
Improve calculateRetryWaitMilliseconds ( #63 )
...
* improve calculateRetryWaitMilliseconds
* update comment
2019-05-10 12:31:21 -07:00
Benjamin Sergeant
f90fc4bfa2
fix static analyzer thing with un-used variable
2019-05-09 16:57:58 -07:00
Benjamin Sergeant
dc1f9fb243
use spdlog for logging in ws + unittest + remove un-needed mutex
2019-05-09 15:30:44 -07:00
Benjamin Sergeant
7c30c8aa07
cout -> cerr
2019-05-09 15:06:42 -07:00
tiwariashish86
b1d13105e7
Fixed pong synchronization issue ( #62 )
...
* Fixed pong synchronization issue
* Minor optimization in lock by scoping it to necessary changes.
* Fixing compilation issues
2019-05-09 15:06:05 -07:00
Benjamin Sergeant
287537b34a
tweak unittest sleep duration to fix gcc+linux CI
2019-05-09 11:10:39 -07:00
Kumamon38
fe04014e1c
Fail test GCC TSAN ( #61 )
...
* test that fails on Run 8
* commented the failing test
2019-05-09 09:33:18 -07:00
Benjamin Sergeant
094b5834b7
warning police
2019-05-09 09:25:56 -07:00
Kumamon38
1eb98cc74f
fix ping, fix send frame close ( #49 )
...
* fix ping, fix send frame close
* fixes for data race on _closeCode etc. and fix test
* fixing one TC
* fix waiting forever if no time to change of readyState, and poll never end
* add 1005 code if no status code received
* fixes for 1005 code
* fix test issue
* fix macOS issue
* revert to master tests and renaming
2019-05-09 09:21:05 -07:00
Benjamin Sergeant
232aa069d2
IXCobraMetricsThreadedPublisher.cpp uses a lambda to log instead of std::cerr
2019-05-08 18:53:32 -07:00
dimon4eg
a69408fa25
rename ptr
2019-05-09 01:05:47 +03:00
dimon4eg
75011d0b4e
simplify bindWebsocket
2019-05-09 00:23:16 +03:00
dimon4eg
28ae70ed20
use lock_guard
2019-05-09 00:20:26 +03:00
dimon4eg
2727d39fa4
update comments
2019-05-09 00:16:37 +03:00
dimon4eg
467f99b3bb
Rename to WebSocketMessageQueue
2019-05-09 00:09:51 +03:00
Benjamin Sergeant
d53c9c5ecf
change default ports for the ws command line tool
2019-05-08 13:56:42 -07:00
Benjamin Sergeant
48c19b4f3c
ws connect display more accurate messages for incoming messages
2019-05-08 13:56:42 -07:00
Dimon4eg
16e5b08a0f
Remove redundant iostream includes ( #60 )
2019-05-08 13:33:21 -07:00
Dimon4eg
636a69e9e1
qf
2019-05-08 22:24:39 +03:00
Dimon4eg
45d40dc159
Added IXWebSocketPoll class
2019-05-08 22:02:56 +03:00
Dimon4eg
88abb79a96
set thread name for Windows ( #57 )
2019-05-08 07:43:43 -07:00
Benjamin Sergeant
1e1d5c3f7d
update appveyor windows build file
2019-05-06 17:50:55 -07:00
Dimon4eg
95e9faff95
update README.md ( #54 )
...
Yeah !
2019-05-06 15:02:16 -07:00
Dimon4eg
979ff60a6b
Use LUrlParser to fix issue of Windows ( #53 )
...
LGTM
2019-05-06 14:45:02 -07:00
Dimon4eg
ea2e8f0787
added tests for IXUrlParser ( #52 )
...
* added tests for IXUrlParser
* add me as author
2019-05-06 12:47:15 -07:00
Benjamin Sergeant
3893c12054
socket server / used wrong mutex to protect _connectionsThreads
2019-05-06 12:24:20 -07:00
Dimon4eg
8ad47a315b
Fix windows ( #51 )
...
* More fixes for Windows
* fix tests for windows
* qf for linux
* clean up
2019-05-06 12:22:57 -07:00
Benjamin Sergeant
3b576c3047
Update README.md
2019-05-06 09:22:52 -07:00
Dimon4eg
4d83dab4f3
Fix for windows ( #50 )
2019-05-06 09:13:42 -07:00
Benjamin Sergeant
28a7ec4f35
doc: add reference to the conan file built at https://github.com/Zinnion/conan-IXWebSocket
2019-05-01 21:31:32 -07:00
Benjamin Sergeant
b5aae88a0b
remove un-needed _backgroundThreadRunning variable
2019-05-01 11:09:25 -07:00
Benjamin Sergeant
bee97237d9
Make AutomaticReconnection optional ( #47 )
...
* unittest pass + commands behave as expected
* cleanup
2019-04-29 21:12:34 -07:00
Benjamin Sergeant
8c8e950455
build fix
2019-04-29 20:54:00 -07:00
Benjamin Sergeant
ad8b344298
tsan fixes on ubuntu xenial (what travis run)
2019-04-29 20:48:16 -07:00
Benjamin Sergeant
6d310d417a
dns lookup: fix race condition accessing _errMsg
2019-04-29 19:29:27 -07:00
Benjamin Sergeant
9dca893ce7
tsan linux tentative fix / copy string instead of passing a const reference
2019-04-29 17:27:53 -07:00
Benjamin Sergeant
e3444e666b
rename _blocking to _backgroundThreadRunning and invert the naming
2019-04-29 16:54:08 -07:00
Alexandre Konieczny
e37e69311b
fix data race on _thread
2019-04-29 16:46:16 -07:00
Alexandre Konieczny
6918f863b1
fix data race on _useMask
2019-04-29 16:41:34 -07:00
Benjamin Sergeant
9ee05bf591
ws connect mode / add a flag to disable automatic reconnection, not hooked up yet
2019-04-29 14:31:29 -07:00
Benjamin Sergeant
e15700235e
enable tsan on travis for all configs
2019-04-29 09:11:16 -07:00
Benjamin Sergeant
1c7c07e128
initialize netSystem (aka winsock on windows) explicitely
2019-04-25 16:38:15 -07:00
Dimon4eg
4fbc4e3be9
Fixes for windows ( #45 )
...
* init Net system on Windows
* propagate DNS error
* Add zlib 1.2.11 sources
* link zlib statically for windows
* remove not implemented function declaration
* fix connect on Windows
2019-04-25 16:26:53 -07:00
Benjamin Sergeant
e251c81d43
fix indentation of greatestCommonDivisor
2019-04-25 16:21:36 -07:00
Benjamin Sergeant
f30a5074ab
Remove commented code
2019-04-25 16:16:52 -07:00
Benjamin Sergeant
f6ae490723
Fix data race in WebSocket where _url is accessed without protection in setThreadName
...
Also fix with url usage + docker container uses fedora and works with tsan
2019-04-25 16:11:46 -07:00
Benjamin Sergeant
7f96c43d6f
disable failing unittest temporarily
2019-04-25 09:04:35 -07:00
Dimon4eg
52260a63fb
Speedup build for Windows ( #43 )
...
* Speedup build for Windows
* add space :)
2019-04-25 07:41:01 -07:00
Benjamin Sergeant
82b528ee30
tsan fix for the IXWebSocketServerTest test, where there's a data race for connectionId
2019-04-24 22:11:14 -07:00
Benjamin Sergeant
a443bbdf80
Fix data races in DNSLookup (tsan)
2019-04-24 21:53:31 -07:00
Benjamin Sergeant
26ee46b246
better server termination / another try at preventing thread join failures
2019-04-24 09:45:53 -07:00
Benjamin Sergeant
cf37816602
compiler warning police
2019-04-24 09:45:03 -07:00
Benjamin Sergeant
b8087f6c48
Fix #38 Add some docker doc in the README
2019-04-23 20:51:58 -07:00
Benjamin Sergeant
28cbe8fbeb
ws cobra publish stress mode fix
2019-04-23 20:51:58 -07:00
Kumamon38
28210ee31d
add boolean and add missing protocol error close constant ( #41 )
2019-04-23 04:31:55 -07:00
Benjamin Sergeant
0caf875399
add example websocket C++ server snake which supports basic cobra ops (publish and subscribe without stream sql
2019-04-22 17:33:45 -07:00
Benjamin Sergeant
323684efff
(server) attempt to fix broken macOS unittest on travis CI
2019-04-22 09:36:16 -07:00
Benjamin Sergeant
678ee0615d
Expand build section in the main README
2019-04-21 21:11:08 -07:00
Benjamin Sergeant
6c889def37
Merge branch 'dhruvkakadiya-readme/fix'
2019-04-21 16:14:35 -07:00
dhruvkakadiya
93586deb6f
For #39 , fixed setOnMessageCallback() in README.
2019-04-21 14:56:02 -07:00
Benjamin Sergeant
b6b9ffd15c
doc cobra
2019-04-21 11:52:38 -07:00
Benjamin Sergeant
1189b5f693
new target to uninstall files
2019-04-21 11:47:57 -07:00
Benjamin Sergeant
1c2b6d59da
Fix #37 / add directives to install headers and library
2019-04-21 11:42:37 -07:00
Benjamin Sergeant
eacc28fedf
move cobra files to their own subfolder
2019-04-21 11:20:17 -07:00
Benjamin Sergeant
5c85ee1214
add cobra metrics publisher
2019-04-21 11:16:33 -07:00
Benjamin Sergeant
7df7453365
indentation / comestic changes
2019-04-19 16:57:38 -07:00
Benjamin Sergeant
3d8297247e
(test) / use a random number generator to get a free port, when the bind to port 0 strategy does not work out
2019-04-19 16:50:04 -07:00
Benjamin Sergeant
662f66e501
(socket server) wait for all connections threads to be terminated before exiting stop method
2019-04-19 16:31:33 -07:00
Benjamin Sergeant
9131cb4790
default sanitizer choice
2019-04-19 15:13:59 -07:00
Benjamin Sergeant
3b616676c6
disable clang sanitizers in CI on any platforms but Darwin
2019-04-19 15:09:01 -07:00
Benjamin Sergeant
cce759b8dd
fix Linux cast warning
2019-04-19 15:03:49 -07:00
Benjamin Sergeant
98b6c9b89e
(unittest) upgrade to Catch2 version 2.7.1
2019-04-19 14:41:03 -07:00
Benjamin Sergeant
5370201df8
add locks around Socket::send and Socket::recv to see if it helps with thread sanitizer error in Linux CI
2019-04-19 14:28:51 -07:00
Benjamin Sergeant
419c395966
uses sh syntax to capture output
2019-04-19 12:40:39 -07:00
Benjamin Sergeant
2962ce9a0f
(ci) verbose mode to figure out Linux build problems on travis
2019-04-19 12:10:43 -07:00
Benjamin Sergeant
c96398aa0c
Windows nmake does not have a -j flag
2019-04-19 11:58:02 -07:00
Benjamin Sergeant
e68ce1d680
Windows + unittest python script fixes
2019-04-19 11:54:58 -07:00
Benjamin Sergeant
d34f10b4ea
fix warning / ws_cobra_subscribe does not need a verbose flag
2019-04-19 11:45:42 -07:00
Benjamin Sergeant
7e2c1f274b
(test) build dir is an absolute path
2019-04-19 11:45:02 -07:00
Benjamin Sergeant
9fe3811c45
(ws) fix compiler warnings
2019-04-19 09:48:46 -07:00
Benjamin Sergeant
b74bccee0a
fix test execution on travis which was broken / unify running test locally and on travis
2019-04-19 09:46:17 -07:00
Benjamin Sergeant
a2d170f415
fix bad merge in IXWebSocketTransport.cpp ...
2019-04-19 09:41:16 -07:00
Benjamin Sergeant
03f762db86
Socket::Poll does not need a callback
2019-04-19 09:32:49 -07:00
Kumamon38
aea859af52
Ping timeout use constant ( #36 )
...
* use constant for ping timeout
* change close code types
2019-04-19 09:16:25 -07:00
Dimon4eg
f61fd7b7f1
Link zlib statically for windows ( #35 )
...
* Add zlib 1.2.11 sources
* link zlib statically for windows
2019-04-19 09:14:03 -07:00
Kumamon38
5682129b1d
fix close code/reason issue ( #34 )
...
* fix close code/reason issue
* added code 1006 for abnormal closure
2019-04-18 10:02:31 -07:00
Kumamon38
c3431f19bf
Real ping ( #32 )
...
* close method change and fix code
* missing mutex
* wip
* renaming and fixes
* renaming, fixes
* added enablePong/disablePong, add tests
* added new test cases
* add 1 test case
* fix gcd name to greatestCommonDivisor
* move ping and ping timeout checks into socket poll, local var in test cases and indent fixes
* indent issue
2019-04-18 09:24:16 -07:00
Benjamin Sergeant
65b11cb968
docker container works with SSL + fix compiler warnings in statsd third_party module
2019-04-18 09:11:12 -07:00
Benjamin Sergeant
f4f60d38b8
docker + linux build fix
2019-04-17 22:52:03 -07:00
Benjamin Sergeant
4337345103
setter method does not need to return anything, make it void
2019-04-17 20:36:26 -07:00
Benjamin Sergeant
52f460f66d
(doc) Add more doc to SocketServer
2019-04-17 20:36:26 -07:00
Benjamin Sergeant
d486c72e02
websocket server: closed connection threads are joined properly
2019-04-17 20:36:26 -07:00
Benjamin Sergeant
bdfc55b951
Bug/30 server connection problem ( #31 )
...
* use threads instead of std::async, need to cleanup threads
* less buggy server connection per thread system
2019-04-16 22:19:44 -07:00
Benjamin Sergeant
b0f6026c23
make closeWireSize a default parameter of WebSocketTransport::close
2019-04-16 09:55:12 -07:00
Kumamon38
b2aca491b6
close method change and fix code ( #28 )
...
* close method change and fix code
* missing mutex
2019-04-16 08:58:34 -07:00
Dimon4eg
401fc39879
fix windows build ( #29 )
...
* fix windows build
* fix for Unix
* Fix build if TLS is OFF
* add OpenSSL req to ws
* Fix build on Mac
* fix tests for windows
2019-04-16 08:51:57 -07:00
Dimon4eg
d4b0839328
move security framework linking to ixwebsocket ( #26 )
2019-04-14 17:13:24 -07:00
Benjamin Sergeant
37c64841ff
fix warning
2019-04-13 21:16:04 -07:00
Benjamin Sergeant
8f8dd076ff
ws: new command to subscribe to a cobra server and send an event to a sentry server
2019-04-11 16:03:05 -07:00
Benjamin Sergeant
51fcf65424
(ws) add subcommands: cobra subscribe, and cobra subscribe to statsd bridge
2019-04-08 21:56:01 -07:00
Benjamin Sergeant
56b19fa2b0
linux ci tentative fix
2019-04-03 22:02:10 -07:00
Benjamin Sergeant
fe38dab405
better unittest runner / can run through lldb and produce a junit XML artifact
2019-03-29 15:54:05 -07:00
Benjamin Sergeant
6cb2aaab65
Bump sleep time in test shell script
2019-03-29 09:36:56 -07:00
Benjamin Sergeant
c604c4591f
(redis_subscribe) in verbose mode, received message gets printed with a 'received: ' header
2019-03-29 09:35:19 -07:00
Benjamin Sergeant
f0f54434cb
Add clarification notice about third party modules
2019-03-29 09:34:17 -07:00
Benjamin Sergeant
f9de85c257
offline version of remark-latest
2019-03-28 16:06:43 -07:00
Benjamin Sergeant
44f817646e
redis conf slides
2019-03-28 14:17:19 -07:00
Benjamin Sergeant
91786779f8
slides
2019-03-27 16:27:52 -07:00
Benjamin Sergeant
27d0aed2c9
add redis-conf slides
2019-03-27 15:53:55 -07:00
Benjamin Sergeant
7767c96a9e
ws redis command improvements + test script
2019-03-27 13:41:46 -07:00
Benjamin Sergeant
3388bb50e1
(ws) redis_subscribe and redis_publish can take a password + display subscribe response
2019-03-26 09:33:22 -07:00
Benjamin Sergeant
1554c587b3
update doc
2019-03-24 21:48:14 -07:00
Benjamin Sergeant
ce70e73a34
remove Formula folder
...
Homebrew stuff is at https://github.com/bsergean/homebrew-IXWebSocket
2019-03-24 21:43:38 -07:00
Benjamin Sergeant
804ec9246f
(server) fix masking bug
2019-03-22 15:33:04 -07:00
Benjamin Sergeant
f029321664
can send TEXT message (we only support BINARY messages now)
2019-03-22 14:24:22 -07:00
Benjamin Sergeant
d41b7f64e4
unmasked code is broken
2019-03-22 14:24:15 -07:00
Benjamin Sergeant
0366d1afb9
remove printf + unittest fix
2019-03-22 09:56:28 -07:00
Benjamin Sergeant
4ef3073ca4
(server) server should not mask data when sending to client (some python client libraries enforce that and assert)
2019-03-22 09:53:56 -07:00
Benjamin Sergeant
68a53aa884
(server) HTTP response is malformed
2019-03-22 09:52:19 -07:00
Benjamin Sergeant
2358b3ff26
minor cleanup
2019-03-21 13:51:25 -07:00
Benjamin Sergeant
00ed1d2817
HTTP/1.1 response should contains a reason (websocket server)
...
Fix compatibility problem with websockets python library, where the response does not contains a reason
File "/.../lib/python3.7/site-packages/websockets/http.py", line 126, in read_response
version, status_code, reason = status_line[:-2].split(b' ', 2)
ValueError: not enough values to unpack (expected 3, got 2)
The above exception was the direct cause of the following exception:
websockets.exceptions.InvalidMessage: Malformed HTTP message
2019-03-21 13:43:47 -07:00
Benjamin Sergeant
5b6fdb6526
cleanup, remove dead method
2019-03-21 10:06:59 -07:00
Benjamin Sergeant
fe700d1e7b
(cmake) add a warning about 32/64 conversion problems.
2019-03-20 21:51:38 -07:00
Benjamin Sergeant
eac611ab1e
Feature/connection state ( #25 )
...
* (cmake) add a warning about 32/64 conversion problems.
* fix typo
* New connection state for server code + fix OpenSSL double init bug
* update README
2019-03-20 18:34:24 -07:00
Benjamin Sergeant
0635313566
Feature/redis ( #23 )
...
* Fix warning
* (cmake) add a warning about 32/64 conversion problems.
* simple redis clients
* can publish to redis
* redis subscribe
* display messages received per second
* verbose flag
* (cmake) use clang only compile option -Wshorten-64-to-32 when compiling with clang
2019-03-20 14:29:02 -07:00
Michael Lu
663299c91e
Fixed heartbeat typos ( #22 )
2019-03-19 21:31:43 -07:00
Benjamin Sergeant
523a6e989a
make PollResultType an enum class
2019-03-19 09:29:57 -07:00
Benjamin Sergeant
13f4aee5ee
fix bug with isReadyToWrite
2019-03-18 22:05:04 -07:00
Benjamin Sergeant
bbc0e2106c
workaround bug in Socket::isReadyToWrite
2019-03-18 20:37:33 -07:00
Benjamin Sergeant
eb6ee52aaa
use milliseconds
2019-03-18 20:17:44 -07:00
Benjamin Sergeant
80e330d4c3
ws / log subcommand name
2019-03-18 17:54:06 -07:00
Benjamin Sergeant
a3adc49d8c
disable sigpipe on osx when writing/reading into a dead pipe
2019-03-18 17:52:01 -07:00
Benjamin Sergeant
9c6eeed0f8
edit homebrew install steps
2019-03-18 15:45:33 -07:00
Benjamin Sergeant
705e9a93f8
add an install target
2019-03-18 15:11:08 -07:00
Benjamin Sergeant
572a217050
no default parameters for isReadyToWrite and isReadyToRead
2019-03-18 14:31:21 -07:00
Benjamin Sergeant
d58798e36c
when trying to flush the send buffer, use select to wait until it is possible instead of using sleep to retry at a given frequency
2019-03-18 14:25:27 -07:00
Dimon4eg
e98634a277
Fix typo ( #19 )
2019-03-17 16:08:28 -07:00
Benjamin Sergeant
f1f08eced0
remove unused gitmodule file
2019-03-17 10:38:48 -07:00
Benjamin Sergeant
6c2da9f0e4
remove unused folder
2019-03-17 10:38:19 -07:00
Benjamin Sergeant
e158635f57
linux hangs when closing
2019-03-16 11:38:23 -07:00
Benjamin Sergeant
5a241e77da
edit README
2019-03-16 11:32:46 -07:00
Benjamin Sergeant
68e397ab34
use pipe to abort select on Linux as well as macOS
2019-03-15 17:46:40 -07:00
Benjamin Sergeant
4c78b94cd8
missing assert include on Linux
2019-03-15 11:43:27 -07:00
Benjamin Sergeant
3a9cc9b079
cleanup
2019-03-15 11:41:57 -07:00
Benjamin Sergeant
6ff8c6e7f3
unittest fix
2019-03-14 18:58:16 -07:00
Benjamin Sergeant
6f90425154
linux compile fix
2019-03-14 18:55:33 -07:00
Benjamin Sergeant
49ec9b1d9e
linux fixes
2019-03-14 18:54:47 -07:00
Benjamin Sergeant
a0e35ad644
build fix
2019-03-14 18:53:21 -07:00
Benjamin Sergeant
b91dc77d6f
select interrupt cleanup
2019-03-14 18:37:38 -07:00
Benjamin Sergeant
b462b5a5c8
linux build fix
2019-03-14 15:17:17 -07:00
Benjamin Sergeant
b5e7fb20b6
replace uint8_t with uint64_t for the send/close requests types / use named variable to index into the _fildes array
2019-03-14 15:03:57 -07:00
Benjamin Sergeant
9d245add9c
set a default close reason string
2019-03-14 14:52:51 -07:00
Benjamin Sergeant
ded03ed743
do not busy loop while sending
2019-03-14 14:48:08 -07:00
Benjamin Sergeant
6cc260c04e
remove docker folder
2019-03-14 14:48:02 -07:00
Benjamin Sergeant
5b4354a6f3
send optimization + ws file transfer test
2019-03-14 14:47:53 -07:00
Benjamin Sergeant
34de36fe01
Update README.md
...
Stop lying about Windows support ...
2019-03-13 23:10:40 -07:00
Benjamin Sergeant
08c2cdbf1d
send can fail silently when sending would block (EWOULDBLOCK return for send) ( #18 )
...
* try to use a pipe for communication
* flush send buffer on the background thread
* cleanup
* linux fix / linux still use event fd for now
* cleanup
2019-03-13 23:09:45 -07:00
Benjamin Sergeant
dedbeb3eab
websocket send: make sure all data in the kernel buffer is sent
2019-03-11 22:16:55 -07:00
Benjamin Sergeant
d88bf16500
add new message type when receiving message fragments
2019-03-11 11:12:43 -07:00
Benjamin Sergeant
ad9c8318a7
ws broacast_server / can set serving hostname
2019-03-10 16:36:44 -07:00
Benjamin Sergeant
f2778c0729
debian 9 unittest build fix
2019-03-10 16:07:48 -07:00
Benjamin Sergeant
03ca73658c
asan test suite fix
2019-03-09 10:45:40 -08:00
Benjamin Sergeant
1da5f6c30c
unittest + warning fix
2019-03-09 10:37:14 -08:00
Benjamin Sergeant
bee8a99a34
add ability to run with asan on macOS
2019-03-05 17:07:28 -08:00
Benjamin Sergeant
f5efd41dc1
fix compiler warnings in ws command line tool
2019-03-04 13:56:30 -08:00
Benjamin Sergeant
c202f8cf1d
Socket code refactoring, plus stop polling with a 1s timeout in readBytes while we only want to poll with a 1ms timeout
2019-03-04 13:40:15 -08:00
Benjamin Sergeant
0c226c7629
readBytes does not read bytes one by one but in chunks
2019-03-02 21:11:16 -08:00
Benjamin Sergeant
a9e772f330
create a blocking + cancellable Socket::readBytes method
2019-03-02 15:16:46 -08:00
Benjamin Sergeant
86cc76388e
create a blocking + cancellable Socket::readBytes method
2019-03-02 11:01:51 -08:00
Benjamin Sergeant
0f4e9af172
more ws doc
2019-02-28 22:07:45 -08:00
Benjamin Sergeant
3a1352c8ec
more ws doc
2019-02-28 22:03:48 -08:00
Benjamin Sergeant
2c86fd947f
Feature/http ( #16 )
...
* add skeleton and broken http client code.
GET returns "Resource temporarily unavailable" errors...
* linux compile fix
* can GET some pages
* Update formatting in README.md
* unittest for sending large messages
* document bug
* 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
* Update README.md
Add note about message fragmentation.
* Feature/ws cli (#15 )
* New command line tool for transfering files / still very beta.
* add readme
* use cli11 for argument parsing
* json -> msgpack
* stop using base64 and use binary which can be stored in message pack
* add target for building with homebrew
* all CMakeLists are referenced by the top level one
* add ws_chat and ws_connect sub commands to ws
* cleanup
* add echo and broadcast server as ws sub-commands
* add gitignore
* comments
* ping pong added to ws
* mv cobra_publisher under ws folder
* Update README.md
* linux build fix
* linux build fix
* move http_client to a ws sub-command
* simple HTTP post support (urlencode parameters)
* can specify extra headers
* chunk encoding / simple redirect support / -I option
* follow redirects is optional
* make README vim markdown plugin friendly
* cleanup argument parsing + add socket creation factory
* add missing file
* http gzip compression
* cleanup
* doc
* 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-28 21:54:03 -08:00
Benjamin Sergeant
927484a71f
Update README.md
2019-02-22 21:53:29 -08:00
Benjamin Sergeant
88adb8f5ef
mv cobra_publisher under ws folder
2019-02-22 21:51:03 -08:00
Benjamin Sergeant
98e7f5cb22
ping pong added to ws
2019-02-22 21:47:57 -08:00
Benjamin Sergeant
67e5957064
comments
2019-02-22 21:27:49 -08:00
Benjamin Sergeant
8c3473a91a
add gitignore
2019-02-22 21:26:25 -08:00
Benjamin Sergeant
1c775cb759
add echo and broadcast server as ws sub-commands
2019-02-22 21:25:56 -08:00
Benjamin Sergeant
c4054d4984
cleanup
2019-02-22 20:51:22 -08:00
Benjamin Sergeant
76e2f9f3ac
add ws_chat and ws_connect sub commands to ws
2019-02-22 20:49:26 -08:00
Benjamin Sergeant
41a40b8b9f
all CMakeLists are referenced by the top level one
2019-02-21 22:21:29 -08:00
Benjamin Sergeant
6b8694bfbf
add target for building with homebrew
2019-02-21 22:05:30 -08:00
Benjamin Sergeant
2d696b6806
Feature/ws cli ( #15 )
...
* New command line tool for transfering files / still very beta.
* add readme
* use cli11 for argument parsing
* json -> msgpack
* stop using base64 and use binary which can be stored in message pack
2019-02-21 21:24:53 -08:00
Benjamin Sergeant
709a5ec89a
Update README.md
...
Add note about message fragmentation.
2019-02-21 14:08:27 -08:00
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
dd4e29542c
document bug
2019-02-16 10:33:37 -08:00
Benjamin Sergeant
726e66ca66
unittest for sending large messages
2019-02-16 10:32:02 -08:00
Benjamin Sergeant
474fd70ec7
Update formatting in README.md
2019-02-05 23:04:45 -08:00
Benjamin Sergeant
5074dbc3c6
more conf in CI
2019-01-29 17:50:19 -08:00
Benjamin Sergeant
eb54e7f1ae
get free port that can be used by non root users (> 1024)
2019-01-28 15:24:19 -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
7eaea28970
Merge pull request #13 from machinezone/user/bsergeant/poll
...
User/bsergeant/poll
2019-01-27 10:47:38 -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
1d359f0fc4
Merge pull request #12 from machinezone/user/bsergeant/heart-beat
...
Add an optional heartbeat
2019-01-25 16:14:28 -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
ea219e3ddd
unittest fix
2019-01-24 19:54:10 -08:00
Benjamin Sergeant
e9cd54b2f4
add an heartbeat test
2019-01-24 18:50:07 -08:00
Benjamin Sergeant
a8b6573f96
hearbeat
2019-01-24 12:42:49 -08:00
Benjamin Sergeant
4e158c8ba7
Update README.md
2019-01-15 09:36:43 -08:00
Benjamin Sergeant
121c84a2d1
check and validate the Connection: Upgrade header in client/server
2019-01-15 09:31:37 -08:00
Benjamin Sergeant
bfb76de9ab
Merge pull request #10 from tonylin0826/master
...
Fix missing "Upgrade" header error
2019-01-15 09:22:11 -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
7fabd14a63
add travis badge
2019-01-08 10:13:23 -08:00
Benjamin Sergeant
6b4d2aeb07
travis -> osx
2019-01-08 10:04:47 -08:00
Benjamin Sergeant
5ab61b46b5
Revert "Revert "try asan on Linux"" [Back to asan on Linux]
...
This reverts commit 02a704a8c7 .
2019-01-07 21:13:48 -08:00
Benjamin Sergeant
39c9691d70
travis-ci: try to use clang on Linux
2019-01-07 20:49:03 -08:00
Benjamin Sergeant
d00960b33f
Revert "try asan on Linux"
...
This reverts commit dd2360ed70 .
2019-01-07 20:47:25 -08:00
Benjamin Sergeant
4a5cfac2ea
try asan on Linux
2019-01-07 18:29:44 -08:00
Benjamin Sergeant
7e1d21239f
build with osx on travis
2019-01-07 18:16:29 -08:00
Benjamin Sergeant
1a8b870a9e
fix simple compile error in test/IXTest.h
2019-01-07 18:08:11 -08:00
Benjamin Sergeant
3e150db493
add a travis file for real
2019-01-07 18:05:55 -08:00
Benjamin Sergeant
1cf8b7e952
add a travis file
2019-01-07 18:04:28 -08:00
Benjamin Sergeant
ea75432f12
update test remote ws url
2019-01-07 11:28:53 -08:00
Benjamin Sergeant
85370dfd21
remove cmake sanitizer submodule
2019-01-07 11:26:23 -08:00
Benjamin Sergeant
8a0afef825
check select errors better
2019-01-07 11:18:00 -08:00
Benjamin Sergeant
76f196206b
sanitizer cmake stuff
2019-01-06 18:54:16 -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
791c3701d7
add new unittest
2019-01-06 15:14:13 -08:00
Benjamin Sergeant
372af54e46
remove dead file
2019-01-06 14:26:11 -08:00
Benjamin Sergeant
20c8953e5b
remove openssl testing bits for apple build
2019-01-06 14:21:49 -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
a5026849a3
add log
2019-01-05 21:16:13 -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
f50881a72f
SocketTest / more debug info
2019-01-05 17:10:01 -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
b1e2c4ce72
test failure is not noticed
2019-01-05 16:30:22 -08:00
Benjamin Sergeant
89ff9dd5ac
fix gcc warning
2019-01-05 16:26:11 -08:00
Benjamin Sergeant
8b95b173cd
makefile tweak
2019-01-05 14:43:21 -08:00
Benjamin Sergeant
80a877ddab
add dns lookup test
2019-01-05 14:40:17 -08:00
Benjamin Sergeant
e892b21872
openssl cleanup
2019-01-05 11:42:25 -08:00
Benjamin Sergeant
c344913ae8
Merge pull request #7 from bsergean/user/bsergeant/appveyor_first
...
unittest on appveyor
2019-01-04 17:29:23 -08:00
Benjamin Sergeant
3eef8fba27
unittest on appveyor
2019-01-04 17:28:13 -08:00
Benjamin Sergeant
d34e47f716
windows fixes
2019-01-04 15:23:57 -08:00
Benjamin Sergeant
9bfba28d01
Merge pull request #6 from machinezone/user/bsergeant/server
...
Add support for writing websocket servers (IXWebSocketServer)
2019-01-03 18:47:30 -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
385e80d185
new doc
2019-01-03 18:00:48 -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
d5041f64be
rename test file
2019-01-02 21:59:06 -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
c6adc00eac
add new broadcast server example
2019-01-02 08:17:03 -08:00
Benjamin Sergeant
b1710bfa31
server per message deflate support
2019-01-02 08:12:29 -08:00
Benjamin Sergeant
0e52c42970
echo server example is a real echo server, not a broadcast server
2019-01-02 08:10:39 -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
4adf5720f0
gitignore stuff
2019-01-01 17:14:31 -08:00
Benjamin Sergeant
973a3f03c3
linux fix + unittest works with Linux
2019-01-01 17:13:26 -08:00
Benjamin Sergeant
06177afd6a
unittest starts a server
2019-01-01 16:34:05 -08:00
Benjamin Sergeant
e5937638d4
crash when server failed to start
2019-01-01 16:14:46 -08:00
Benjamin Sergeant
7c4f14f941
thread accepting connections can be cancelled/stopped externally
2019-01-01 16:11:27 -08:00
Benjamin Sergeant
ead54d6c37
listen job run in its own thread, non blocking
2019-01-01 14:52:14 -08:00
Benjamin Sergeant
b749f3c724
(nitpick) reformat
2019-01-01 14:29:57 -08:00
Benjamin Sergeant
d279aecb87
cleanup / remove printf, add mutex, remove hardcoded values, can pass in a binding host
2019-01-01 14:28:41 -08:00
Benjamin Sergeant
67de0fc8da
use shared_ptr
2019-01-01 13:53:13 -08:00
Benjamin Sergeant
8ed2399517
unittest pass
2019-01-01 13:47:25 -08:00
Benjamin Sergeant
cf340011e2
record workers in a map instead of a vector
2018-12-31 14:52:59 -08:00
Benjamin Sergeant
ec2ad37860
add a print statement when the connection is closed / still need to terminate server thread
2018-12-31 12:47:42 -08:00
Benjamin Sergeant
3443e82812
more cleanup to propagate server connection error and let onOpen callback execute
2018-12-31 12:43:47 -08:00
Benjamin Sergeant
63138507d6
only bind to localhost
2018-12-31 11:48:49 -08:00
Benjamin Sergeant
b2eb07db14
server code has a callback that takes a websocket
2018-12-30 22:12:13 -08:00
Benjamin Sergeant
379a845166
cleanup / use a websocket instead of raw websockettransport
2018-12-30 22:00:49 -08:00
Benjamin Sergeant
266cf93584
can accept multiple connection / server can send data back to client
2018-12-30 21:16:05 -08:00
Benjamin Sergeant
0ee71e9a09
proof of concept server implementation
2018-12-29 23:15:27 -08:00
Benjamin Sergeant
ea07afcc0b
can create a socket from a fd
2018-12-29 21:53:33 -08:00
Benjamin Sergeant
43cd6d34ca
add simple unittest
2018-12-29 18:34:08 -08:00
Benjamin Sergeant
3b67032adb
add missing src files (IXSetThreadName.{cpp,h}) ...
2018-12-23 14:19:30 -08:00
Benjamin Sergeant
2d46a0605b
fix warning: field '_eventCallback' will be initialized after field '_publishMode'
2018-12-23 14:18:53 -08:00
Benjamin Sergeant
ba54664748
Fix warning: field '_done' will be initialized after field '_wait' [-Wreorder] _done(false),
2018-12-23 14:17:30 -08:00
Benjamin Sergeant
a79f4c10a1
set thread name / rename example
2018-12-23 14:14:38 -08:00
Benjamin Sergeant
bd04b28b9e
async dns lookup fix
2018-12-14 17:49:42 -08:00
Benjamin Sergeant
cbadecab33
non blocking dns lookup
2018-12-14 16:28:17 -08:00
Benjamin Sergeant
8c079787f0
add cancellation support while connecting, to speed up WebSocket::stop
2018-12-09 17:56:20 -08:00
Benjamin Sergeant
62528e6a0b
http upgrade and connections use non blocking sockets
2018-12-09 14:07:40 -08:00
Benjamin Sergeant
49bf8bd830
threading race condition fixes, detected by TSAN
2018-12-06 08:27:28 -08:00
Benjamin Sergeant
c64bc20bb5
cleanup
2018-11-14 15:52:28 -08:00
Benjamin Sergeant
54da891f79
per-message deflate compression fixes
2018-11-13 17:46:05 -08:00
Benjamin Sergeant
e847716076
move files around
2018-11-12 17:56:59 -08:00
Benjamin Sergeant
3a68bbd1b2
update readme / remove reference to missing compression support now that it is supported ...
2018-11-12 09:01:42 -08:00
Benjamin Sergeant
9cb1d03411
tweaks doc / license + send proper error code when closing the connecion
2018-11-12 09:00:55 -08:00
Benjamin Sergeant
4fed156b90
per message deflate support (with zlib)
2018-11-09 18:42:09 -08:00
Benjamin Sergeant
de8bcd36e8
(satori_publisher) better error handling
2018-11-07 14:54:44 -08:00
Benjamin Sergeant
135cfe3238
Add some example shell scripts to build on Linux
2018-11-07 12:33:33 -08:00
Benjamin Sergeant
6dbfe28427
Add new example folder for publishing events to satori, with a minimal satori sdk
2018-11-07 12:26:32 -08:00
Benjamin Sergeant
2b203c4616
Add missing files ...
2018-11-07 12:25:38 -08:00
Benjamin Sergeant
f12e655cf8
Add DockerFile + parse rsv1 field
2018-11-07 11:45:17 -08:00
Benjamin Sergeant
cf0045a483
stopping connection on Linux does not close the socket, which can create problem when re-starting the connection
2018-11-01 17:02:49 -07:00
Benjamin Sergeant
9c81eeace0
add stop and start directives to ws_connect + display close info
2018-10-31 10:27:17 -07:00
Benjamin Sergeant
5b333f91f6
update readme.md
2018-10-27 11:46:11 -07:00
Benjamin Sergeant
912d926260
Handle Sec-WebSocket-Accept correctly
2018-10-27 10:24:48 -07:00
Benjamin Sergeant
a8dfd640a7
capture an error code and a reason when the server closes the connection
2018-10-25 18:51:19 -07:00
Benjamin Sergeant
390044b716
add doc about ping/pong
2018-10-25 15:14:31 -07:00
Benjamin Sergeant
8ac36e6ee5
ping pong example: more error handling
2018-10-25 14:46:23 -07:00
Benjamin Sergeant
208c693088
ping / pong support / fix bug in dispatching received message type
2018-10-25 14:43:35 -07:00
Benjamin Sergeant
eae2f7d113
Better ping/pong support
2018-10-25 14:43:35 -07:00
Benjamin Sergeant
45f92115f9
New ws_connect example. Close to wscat node.js tool.
2018-10-25 14:43:35 -07:00
Benjamin Sergeant
42f3adc7a2
Update README.md
2018-10-08 21:50:55 -07:00
Benjamin Sergeant
71b40c6d6c
Windows support (no TLS yet)
2018-10-08 21:44:54 -07:00
Benjamin Sergeant
af12089e7a
make TLS support optional
2018-10-08 15:24:36 -07:00
Benjamin Sergeant
33677c4b2b
move examples around
2018-10-08 15:24:36 -07:00
Benjamin Sergeant
376c8c2e00
Update IXWebSocket.h
...
Remove dead code
2018-10-07 15:49:07 -07:00
Benjamin Sergeant
8232e9e8ce
Update README.md
...
Advanced usage -> API
2018-10-07 15:47:38 -07:00
Benjamin Sergeant
436bf8deb5
more ssl peer validation stuff
2018-10-05 18:45:44 -07:00
Benjamin Sergeant
c858a1c9e5
Update README.md
2018-10-05 14:35:09 -07:00