Commit Graph

173 Commits

Author SHA1 Message Date
Benjamin Sergeant
f4c771b745 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-26 11:52:47 -07:00
Alexandre Konieczny
9703f76386 fix disconnection after own close 2019-04-26 15:17:37 +02:00
Alexandre Konieczny
3ea7dbb637 consider socket close as local, remote only when receiving reason from remote 2019-04-26 11:26:54 +02:00
Alexandre Konieczny
6beecc0aa8 fixes, renaming, spaces, changed close timeout to 200ms 2019-04-26 11:24:34 +02:00
Alexandre Konieczny
eee99ecfc9 change close timeout from 500 to 100ms 2019-04-25 10:30:25 +02:00
Alexandre Konieczny
ed4063bd6a remove line 2019-04-25 10:13:24 +02:00
Alexandre Konieczny
3a9fe7c480 final fixes, with timeout 2019-04-25 10:01:45 +02:00
Alexandre Konieczny
2dfd141897 Merge branch 'master' into add-close-code-to-websocket-and-fixes 2019-04-25 08:39:46 +02:00
Benjamin Sergeant
4fe07579b9 Fix data races in DNSLookup (tsan) 2019-04-24 21:53:31 -07:00
Alexandre Konieczny
f9abf3908f Merge branch 'master' into add-close-code-to-websocket-and-fixes 2019-04-24 18:49:00 +02:00
Benjamin Sergeant
f563d14134 better server termination / another try at preventing thread join failures 2019-04-24 09:45:53 -07:00
Alexandre Konieczny
679791dd63 remove unused var and method 2019-04-24 17:56:37 +02:00
Alexandre Konieczny
2b9b31ef4c fixes 2019-04-24 17:53:11 +02:00
Alexandre Konieczny
1f518aa95d wip 2019-04-24 16:43:22 +02:00
Alexandre Konieczny
503826a762 remove param remote for public close method, only left in internalClose 2019-04-23 15:53:45 +02:00
Alexandre Konieczny
37c639387f merge and remove useless comments 2019-04-23 14:37:55 +02:00
Alexandre Konieczny
d4cdbe6141 add comments 2019-04-23 14:30:35 +02:00
Alexandre Konieczny
776227edcb add close params, fix close wrong code in callback after close() sent on remote side 2019-04-23 14:09:12 +02:00
Kumamon38
8ff1339b80 add boolean and add missing protocol error close constant (#41) 2019-04-23 04:31:55 -07:00
Alexandre Konieczny
23384dcd6e add boolean and add missing protocol error close constant 2019-04-23 08:55:06 +02:00
Benjamin Sergeant
9ab7bc652a (server) attempt to fix broken macOS unittest on travis CI 2019-04-22 09:36:16 -07:00
Benjamin Sergeant
d48bf9249b indentation / comestic changes 2019-04-19 16:57:38 -07:00
Benjamin Sergeant
4564173b75 (socket server) wait for all connections threads to be terminated before exiting stop method 2019-04-19 16:31:33 -07:00
Benjamin Sergeant
b041042473 fix Linux cast warning 2019-04-19 15:03:49 -07:00
Benjamin Sergeant
b0139c2217 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
bb442021cf fix bad merge in IXWebSocketTransport.cpp ... 2019-04-19 09:41:16 -07:00
Benjamin Sergeant
91106b7456 Socket::Poll does not need a callback 2019-04-19 09:32:49 -07:00
Kumamon38
309b5ee1b3 Ping timeout use constant (#36)
* use constant for ping timeout

* change close code types
2019-04-19 09:16:25 -07:00
Kumamon38
e3d0c899d3 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
d7595b0dd0 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
c367435073 docker + linux build fix 2019-04-17 22:52:03 -07:00
Benjamin Sergeant
dc812c384e setter method does not need to return anything, make it void 2019-04-17 20:36:26 -07:00
Benjamin Sergeant
10b2d10dbd (doc) Add more doc to SocketServer 2019-04-17 20:36:26 -07:00
Benjamin Sergeant
f96babc6a6 websocket server: closed connection threads are joined properly 2019-04-17 20:36:26 -07:00
Benjamin Sergeant
4e2e14fb22
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
bcf2fc1812 make closeWireSize a default parameter of WebSocketTransport::close 2019-04-16 09:55:12 -07:00
Kumamon38
935e6791a3 close method change and fix code (#28)
* close method change and fix code

* missing mutex
2019-04-16 08:58:34 -07:00
Dimon4eg
fbb7c012a3 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
Benjamin Sergeant
d8e83caffc fix warning 2019-04-13 21:16:04 -07:00
Benjamin Sergeant
1e96edc293 (server) fix masking bug 2019-03-22 15:33:04 -07:00
Benjamin Sergeant
0afb77393b can send TEXT message (we only support BINARY messages now) 2019-03-22 14:24:22 -07:00
Benjamin Sergeant
7614b642bb unmasked code is broken 2019-03-22 14:24:15 -07:00
Benjamin Sergeant
bc89580dfe remove printf + unittest fix 2019-03-22 09:56:28 -07:00
Benjamin Sergeant
358ae13a88 (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
ccf9dcba70 (server) HTTP response is malformed 2019-03-22 09:52:19 -07:00
Benjamin Sergeant
94604fad61 minor cleanup 2019-03-21 13:51:25 -07:00
Benjamin Sergeant
5c4cc7c50d 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
9ed961ec06 cleanup, remove dead method 2019-03-21 10:06:59 -07:00
Benjamin Sergeant
ee25bd0f92
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
e77b9176f3
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