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
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 and GitHub
427db5bd59
Fix Windows CI with appveyor ( #110 )
...
Fix windows CI with appveyor + minor tweaks.
2019-09-07 14:07:00 -07:00
Benjamin Sergeant and GitHub
30b83b5ff0
Update README.md
2019-09-05 14:30:51 -07:00
Benjamin Sergeant and GitHub
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
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 and GitHub
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 and GitHub
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 and GitHub
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 and GitHub
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
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