The `utils` module uses a convoluted mechanism for filling byte arrays
with random data. The `generate` function can be used directly, making
the `utils` module obsolete.
* validate utf8 at the message level
* move utf-8 validation to message
* rename `recv` to `recvMsg`
* add partial frame validation tests
* use `recvMsg` instead of `recv`
* add support for DNS resolution
- reworked API to be more consistent
- string addresses and Uri types will be now resolved
- made the API more consistent
* log failed connection attempt
* agent string can't contain spaces
* add websock topic (#83)
* style
Co-authored-by: Tanguy Cizain <tanguycizain@gmail.com>
* add accepts api
* Fix partial frame handling and allow extensions to hijack the flow (#56)
* moving files around
* wip
* wip
* move tls example into server example
* add tls functionality
* rename
* rename
* fix tests
* move extension related files to own folder
* use trace instead of debug
* export extensions
* rework partial frame handling and closing
* rework status codes as distincts
* logging
* re-enable extensions processing for frames
* enable all test for non-tls server
* remove tlsserver
* remove offset to mask - don't think we need it
* pass sessions extensions when calling send/recv
* adding encode/decode extensions flow test
* move server/client setup to helpers
* proper frame order execution on decode
* fix tls tests
* fix merge
* add tls support for `accept` call
* fix tests to use accepts & cb
* moving files around
* wip
* wip
* move tls example into server example
* add tls functionality
* rename
* rename
* fix tests
* move extension related files to own folder
* use trace instead of debug
* export extensions
* rework partial frame handling and closing
* rework status codes as distincts
* logging
* re-enable extensions processing for frames
* enable all test for non-tls server
* remove tlsserver
* remove offset to mask - don't think we need it
* pass sessions extensions when calling send/recv
* adding encode/decode extensions flow test
* move server/client setup to helpers
* proper frame order execution on decode
* fix tls tests
* Use seq[byte] to store data.
* Working bytes conversion.
* Refactor the code.
* Add test.
* Add websocket test and fix closing handshake.
* Add MsgReader to read data in external buffer.
* rework frame reading
* don't do toTitleCase
* fix examples
* use byte for more comfort
* rework message reading + api
* fix tests
* adding specific exception types
* minor cleanup
* fixing tests
* more tests
* check the fin flag at the correct place
* info for debug
* split data not encoded frames
* more tests
* wip - control messages
* closing flow and more explicit exception handling
* test close and pings
* add tests task to nimble
* adding ci
* change recv semantics
* add frame tests
* remove echo
* better frame tests
* fix
* fix
* handle continuation frames properly
* more close logic handling
* wip tests
* handle close reasons properly
* test control frames encoding
* don't pass ws to event callbacks
* fix masking and use correct base64 encoding
* fix ci
* addressing review comments
* fix client example
* i386 ci fix
* wip ci
* fix reading offset
* don't read if socket closed
* fix ci
* wip
* don't read if socket is closed
Co-authored-by: Arijit Das <arijit@status.im>
Co-authored-by: Arijit Das <arijitad.in@gmail.com>
* Implement websocket server.
* Implement websocket client.
* Run nimpretty.
* Remove commented code.
* Address comments.
* Address comments on websocket server.
* Use seq[byte] to store data.
* Working bytes conversion.
* Remove result from return
* Refactor the code.
* Minor change.
* Add test.
* Add websocket test and fix closing handshake.
* Add MsgReader to read data in external buffer.