Commit Graph

138 Commits

Author SHA1 Message Date
andri lim 63bcc2902d
Fix CI badge URL (#162) 2024-04-24 12:14:09 +07:00
tersec 6db6088792
test refc in CI in Nim 2.0 and later (#161) 2024-02-22 03:42:37 +00:00
tersec ed89f58624
use non-EOL macOS version for GitHub Actions CI (#160) 2024-02-16 18:13:56 +00:00
andri lim 8652e4b814
Downgrade upload artifact action to v3 (#159) 2024-01-28 13:23:14 +07:00
jangko 342c3e2e34
Revert "Fix github actions badge url"
This reverts commit a7f9258b55.
2024-01-27 17:05:13 +07:00
jangko d4709b63c0
Upgrade to github actions v4 2024-01-27 15:13:39 +07:00
jangko fc3c85581c
Reduce compiler warnings 2024-01-25 17:44:23 +07:00
jangko a7f9258b55
Fix github actions badge url 2024-01-24 11:20:56 +07:00
jangko 475ad35c89
Reduce compiler warnings 2024-01-23 12:02:14 +07:00
jangko 98982bb52e
Upgrade github action setup-python to v3 and up/dn artifact to v3 2024-01-23 11:23:11 +07:00
jangko deab188317
Restrict autobahn tests run to merged PR only 2024-01-23 09:28:23 +07:00
andri lim 98b6c3006f
Reenable tests (#151) 2024-01-23 09:25:38 +07:00
diegomrsantos f5580fff3e
Fix autobahn tests (#145)
Co-authored-by: jangko <jangko128@gmail.com>
2024-01-22 23:05:28 +07:00
andri lim f3bff11dfe
Upgrade github action to v3 (#150) 2024-01-22 20:08:52 +07:00
andri lim 282773af69
Reduce compiler warnings when using new chronos (#149)
* Reduce compiler warnings when using new chronos

* chronos req

* Reduce more warnings
2024-01-22 19:08:17 +07:00
Etan Kissling f8ed9b40a5
replace `utils` module with direct `generate` calls (#148)
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.
2023-07-24 22:38:21 +02:00
tersec 2c3ae3137f
make nimble file consistent with CI setup (#147) 2023-06-10 05:15:16 +00:00
diegomrsantos 3696e3f3a5
Handle cancellation in close (#143)
* Handle cancellation in close

* Using a future instead of sleepAsync
2023-06-06 22:57:40 +02:00
Diego 062fd132a5
Remove Nim 1.2 2023-06-06 11:48:19 +02:00
tersec 494afadb86
try py3 for autobahn 2023-06-01 17:08:24 +00:00
tersec 6a29d71741
use still-supported versions of Ubuntu and macOS in GitHub Actions CI (#142) 2023-06-01 16:46:52 +00:00
jangko fea05cde8b
reduce compiler warnings 2023-01-31 13:00:53 +07:00
Tanguy 4c5e225eeb
Remove recvMsg pre-allocation (#136) 2023-01-25 17:56:42 +01:00
Tanguy 691f069b20
Fix closing hangs (#131)
A peer can make us wait forever when closing a connection.
This PR instead tries to be nice and wait for him, but kills the connection after a while
2022-11-22 10:45:38 +01:00
Tanguy cf8b8ce235
Remove newRng (#132) 2022-11-21 19:29:20 +01:00
Tanguy acbe30e9ca
Fix compilation on nim devel (#130) 2022-10-24 13:29:13 +02:00
Etan Kissling 2424f2b215
configure SNI hostname when connecting WSS (#128)
When connecting to WebSocket via TLS, certain servers require hostname
to be sent as part of SNI extension. This was done when using `news`
backend, but not when using `nim-websock` backend. Aligned both impls.
2022-09-16 21:38:37 +02:00
Etan Kissling 7b2ed397d6
properly support concurrent message sending (#126)
`nim-websock` suffered from a number of issues that are being addressed:

1. Long messages > `frameSize` (default 1 MB) were split into fragments
   of `frameSize` each. However, when a concurrent message is sent, it
   may be interleaved among the fragments of an already-sending message.
   This is only allowed for control packets without a mux extension.

2. When the WebSocket session is closed, a msg may have been partially
   received. This partial frame was reported as a full message, without
   indication that the receiving was canceled. This behaviour is fixed
   by raising a `WSClosedError` instead of reporting the partial msg.

3. When an individual `send` operation was canceled, it would actually
   stop sending the remainder of a potentially partially sent messages.
   This would corrupt the stream for concurrent and followup operations.
   Cancellation is now inhibited for the message currently sending.
   It is still possible to cancel messages that are not yet scheduled.

4. Messages could get reordered when using asynchronous encoders. This
   is addressed by delaying followup messages until the current message
   is fully encoded and transmitted (except for control packets).

Co-authored-by: Tanguy <tanguy@status.im>
2022-09-06 11:09:21 +02:00
Jacek Sieka af8779d9d9
Note that chronos is required 2022-08-16 13:17:58 +02:00
tersec 8a72c0f769
--styleCheck:error (#122)
* --styleCheck:error

* --styleCheck:error iff >= Nim 1.6
2022-07-21 15:38:13 +00:00
Ivan Yonchovski f2fb0c3695
Add setup/lock files (#120) 2022-07-12 21:33:50 +03:00
Dustin Brody 8a433c6ba4
stylecheck: tkSemcol -> tkSemCol 2022-07-05 21:24:30 +00:00
Dustin Brody 47ceac54c2
stylecheck: payLoad -> payload 2022-07-05 17:02:05 +00:00
Tanguy 27e4b3aff7
Fix compilation for ARC/ORC (#119) 2022-07-04 15:43:44 +02:00
Tanguy 92d350fe88
Fix fragmented message sending (#116)
We previously crashed when sending things over 1mb
2022-06-30 17:14:07 +02:00
Miran 283a9bb1fc
move -d:nimRawSetjmp to nim.cfg (#114)
Refs https://github.com/status-im/nimbus-build-system/issues/44
2022-06-20 09:20:01 +02:00
Jacek Sieka e974acbe0a
test fixes (#115)
* don't use global for server instance
  * it gets shared between tests and causes gcsafe to trigger
* enable `chronosStrictException` in tests
* avoid asynctests dep
* testcommon -> all_tests (like the other projects)
2022-06-20 09:19:38 +02:00
Jacek Sieka fc6538fa85
bearssl: use rand helpers (#113) 2022-06-17 15:03:38 +02:00
Tanguy 47b486b52f
Fix: handle simultaneous closing properly (#112)
Since we use readFrame instead of readMsg, we need to handle
it's possible exceptions. Closes #111
2022-05-25 16:02:46 +02:00
Tanguy 8927db93f6
Read frames instead of messages on close
Since #109, there can be only one concurrent user
of recvMsg. So in case someone is already reading,
better to readFrames
2022-05-19 14:27:44 +02:00
Tanguy edfbb169c8
Fix some issues with recv hanging (#109)
* Crash on concurrent reads
* Fix some issues with recv hanging
2022-05-18 14:37:53 +02:00
Tanguy 5311a6e0b8
TLS1.2 by default (#110)
closes #107
2022-05-18 08:51:45 +02:00
Jacek Sieka 14d852e0d4
style fixes (#108) 2022-04-08 11:11:53 +02:00
jangko 4a7a058843
add http header hook
fix #101
2022-03-16 08:24:16 +07:00
andri lim 6e73e34975
regenerate ssl certificate and private key for autobahn server (#106)
The new certificate:
Valid From: 2022-03-11 04:12:50 UTC
Valid To: 2032-03-08 04:12:50 UTC

checked with https://www.geocerts.com/certificate-decoder
2022-03-11 14:27:13 -06:00
Tanguy d79ad840e7
Update autobahn TLS cert (#105) 2022-03-10 14:36:51 +01:00
Tanguy 853299e399
Accept timeout (#102) 2022-03-09 14:38:45 +01:00
Ștefan Talpalaru 73edde4417
CI: test with multiple Nim versions (#99)
* CI: test with multiple Nim versions
2022-01-02 05:49:29 +01:00
Tanguy 908632aa07
Fix for styleCheck:usages (#96) 2021-12-27 11:27:21 +01:00
markspanbroek c2aae352f7
Remove version pin on chronicles (#97)
* Remove version pin on chronicles

Caused dependency conflicts when combining websock with other
packages that depend on chronicles, now that chronicles has
a new version (0.10.2).

* Ensure that chronicles version supports isLogFormatUsed
2021-12-16 14:26:49 +01:00