Commit Graph

235 Commits

Author SHA1 Message Date
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
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
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
Kumamon38
26de9b9714 Clean (#82)
Thanks
2019-05-21 12:14:58 -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
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
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
90d71deb0f Add constants for closing code and messages 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
f894504761 enum class HttpErrorCode derives from int 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
0c9bcfb8ac more protection against socket when closing 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
Benjamin Sergeant
fc4623381a server code / add dedicated thread to close/join terminated connection threads 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
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
97617ced4a Added WebSocketMessageQueue 2019-05-12 01:49:06 +03: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
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
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
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
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
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