* implement UTF8 handling
or to be precisely, we add UTF8 validator which main duty
is to detect malformed UTF8 sequence using a fast DFA UTF8
decoder.
also enable autobahn UTF8 category tests, much more green :)
fixes#13
* fixes case 7.5.1 Send a close frame with invalid UTF8 payload
* add tests for validateUTF8
- tests for validateUTF8 in raw mode
- tests for validateUTF8 in websocket client/server
from: 2.7.17 to pypy-2.7
why:
there is annoying warning message in github action ci:
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020.
Please upgrade your Python as Python 2.7 won't be maintained after that date.
A future version of pip will drop support for Python 2.7.
More details about Python 2 support in pip, can be found at
https://pip.pypa.io/en/latest/development/release-process/#python-2-support
on Windows there is bug with message:
`Unhandled exception: Stream is already closed! [AsyncStreamIncorrectDefect]`
caused by the async stream closed more than once.
* Update http to use chronos http.
* Implement TLS in websocket.
* Add webscoket TLS test.
* Minor nit.
* Add TLS test file.
* Update http to use chronos http. (#6)
* Update http to use chronos http.
* Add stream.nim file.
* Address comments.
* Fix CI failure.
* Minor change.
* Address comments.
* Fix windows CI failing test.
* minor cleanup
* spacess
* more idiomatic connect
* use stew/base10
Co-authored-by: Dmitriy Ryajov <dryajov@gmail.com>
* Implement TLS in websocket.
* Minor nit.
* merge master
* wip
* Update http to use chronos http. (#6)
* Update http to use chronos http.
* Add stream.nim file.
* Address comments.
* Fix CI failure.
* Minor change.
* Address comments.
* Fix windows CI failing test.
* minor cleanup
* spacess
* more idiomatic connect
* use stew/base10
Co-authored-by: Dmitriy Ryajov <dryajov@gmail.com>
* Update http to use chronos http.
* Implement TLS in websocket.
* Minor nit.
* Update http to use chronos http. (#6)
* Update http to use chronos http.
* Add stream.nim file.
* Address comments.
* Fix CI failure.
* Minor change.
* Address comments.
* Fix windows CI failing test.
* minor cleanup
* spacess
* more idiomatic connect
* use stew/base10
Co-authored-by: Dmitriy Ryajov <dryajov@gmail.com>
* Implement TLS in websocket.
* Minor nit.
* add testing keys
* wip
* fix test
* wip
* remove eth dep and add skipdirs
* fix package structure
* fix deps
* check nim version
* Fix CI failure.
* Don't call `ws.stream.closeWait()`
* always close both ends to complete the sequence
* misc
* don't fail on close
* Fix windows CI.
* fix linux x86 builds
* use consistent connect pattern
* move keys to better place
* return dumbResponse
* small cleanup
Co-authored-by: Dmitriy Ryajov <dryajov@gmail.com>
* 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.