Commit Graph

251 Commits

Author SHA1 Message Date
Benjamin Sergeant
2a90e3f478 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
1d49ba41ea Fix typo (#19) 2019-03-17 16:08:28 -07:00
Benjamin Sergeant
e1de1f6682 remove unused gitmodule file 2019-03-17 10:38:48 -07:00
Benjamin Sergeant
47ed5e4d4d remove unused folder 2019-03-17 10:38:19 -07:00
Benjamin Sergeant
d77f6f5659 linux hangs when closing 2019-03-16 11:38:23 -07:00
Benjamin Sergeant
05f0045d5d edit README 2019-03-16 11:32:46 -07:00
Benjamin Sergeant
c4afb84f6e use pipe to abort select on Linux as well as macOS 2019-03-15 17:46:40 -07:00
Benjamin Sergeant
b0b2f9b6d2 missing assert include on Linux 2019-03-15 11:43:27 -07:00
Benjamin Sergeant
ee37feb489 cleanup 2019-03-15 11:41:57 -07:00
Benjamin Sergeant
6b8337596f unittest fix 2019-03-14 18:58:16 -07:00
Benjamin Sergeant
250665b92e linux compile fix 2019-03-14 18:55:33 -07:00
Benjamin Sergeant
86b83c889e linux fixes 2019-03-14 18:54:47 -07:00
Benjamin Sergeant
c9c657c07b build fix 2019-03-14 18:53:21 -07:00
Benjamin Sergeant
4f2babaf54 select interrupt cleanup 2019-03-14 18:37:38 -07:00
Benjamin Sergeant
1b03bf4555 linux build fix 2019-03-14 15:17:17 -07:00
Benjamin Sergeant
977b995af9 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
310ab990bd set a default close reason string 2019-03-14 14:52:51 -07:00
Benjamin Sergeant
d6b49b54d4 do not busy loop while sending 2019-03-14 14:48:08 -07:00
Benjamin Sergeant
f00cf39462 remove docker folder 2019-03-14 14:48:02 -07:00
Benjamin Sergeant
18550cf1cb send optimization + ws file transfer test 2019-03-14 14:47:53 -07:00
Benjamin Sergeant
168918f807
Update README.md
Stop lying about Windows support ...
2019-03-13 23:10:40 -07:00
Benjamin Sergeant
2750df8aa7
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
d6597d9f52 websocket send: make sure all data in the kernel buffer is sent 2019-03-11 22:16:55 -07:00
Benjamin Sergeant
892ea375e3 add new message type when receiving message fragments 2019-03-11 11:12:43 -07:00
Benjamin Sergeant
03abe77b5f ws broacast_server / can set serving hostname 2019-03-10 16:36:44 -07:00
Benjamin Sergeant
e46eb8aa49 debian 9 unittest build fix 2019-03-10 16:07:48 -07:00
Benjamin Sergeant
2c4862e0f1 asan test suite fix 2019-03-09 10:45:40 -08:00
Benjamin Sergeant
fd69efa45c unittest + warning fix 2019-03-09 10:37:14 -08:00
Benjamin Sergeant
e8aa15917f add ability to run with asan on macOS 2019-03-05 17:07:28 -08:00
Benjamin Sergeant
b3d77f8902 fix compiler warnings in ws command line tool 2019-03-04 13:56:30 -08:00
Benjamin Sergeant
9c3b0b08ec 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
fe7d94194c readBytes does not read bytes one by one but in chunks 2019-03-02 21:11:16 -08:00
Benjamin Sergeant
d6c26d6aa8 create a blocking + cancellable Socket::readBytes method 2019-03-02 15:16:46 -08:00
Benjamin Sergeant
8a74ddcd13 create a blocking + cancellable Socket::readBytes method 2019-03-02 11:01:51 -08:00
Benjamin Sergeant
18e7189a07 more ws doc 2019-02-28 22:07:45 -08:00
Benjamin Sergeant
785dd42c84 more ws doc 2019-02-28 22:03:48 -08:00
Benjamin Sergeant
0cff5065d9
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
e881b82511
Update README.md 2019-02-22 21:53:29 -08:00
Benjamin Sergeant
d5551e5d68 mv cobra_publisher under ws folder 2019-02-22 21:51:03 -08:00
Benjamin Sergeant
e8583000b8 ping pong added to ws 2019-02-22 21:47:57 -08:00
Benjamin Sergeant
d642ef1a89 comments 2019-02-22 21:27:49 -08:00
Benjamin Sergeant
2df118022d add gitignore 2019-02-22 21:26:25 -08:00
Benjamin Sergeant
95457c8f4c add echo and broadcast server as ws sub-commands 2019-02-22 21:25:56 -08:00
Benjamin Sergeant
0a45b7787f cleanup 2019-02-22 20:51:22 -08:00
Benjamin Sergeant
b8c397e180 add ws_chat and ws_connect sub commands to ws 2019-02-22 20:49:26 -08:00
Benjamin Sergeant
90105fa2b3 all CMakeLists are referenced by the top level one 2019-02-21 22:21:29 -08:00
Benjamin Sergeant
24859fef8a add target for building with homebrew 2019-02-21 22:05:30 -08:00
Benjamin Sergeant
73d7280723
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
262de49c3c
Update README.md
Add note about message fragmentation.
2019-02-21 14:08:27 -08:00
Benjamin Sergeant
3a77e96a05
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