Jacek Sieka
98a5efba4d
Various error handling and processing fixes ( #228 )
...
* remove redundant gcsafe/raises
* rework async raises to chronos 4.0 where this was not yet done
* streamline logging between http/socket/ws
* don't log error when raising exceptions (whoever handles should log)
* debug-log requests in all variants of server and client
* unify ipv4/ipv6 address resolution, with preference for ipv6
* fix server start so that it consistently raises only when no addresses
could be bound
2024-10-22 21:58:46 +02:00
Kim De Mey
ad8721e0f3
Export errors for json-rpc clients ( #218 )
...
Errors should get exported considering they are part of the
json-rpc APIs.
2024-03-15 09:05:33 +01:00
Etan Kissling
8682bb6c85
align maximum body size between Websock and HTTP transports ( #211 )
...
HTTP has a 128 MB limit, while websock uses the library default (20 MB).
Align both to 128 MB. This should be enough for an Ethereum `getPayload`
with 6 blobs, all hex encoded binary + JSON overhead.
2024-02-20 14:34:20 +01:00
andri lim
514049a287
Fix ws and socket client error handling and add test to #212 ( #213 )
2024-02-19 08:53:10 +07:00
jangko
2157e8980d
Should compile if chronicles log turned on
2024-01-31 16:46:44 +07:00
jangko
0b8cec3aa8
Implement RPC batch call both in servers and clients
2024-01-31 13:13:41 +07:00
jangko
dad0255c71
Client pass meaningful error to newFut when processMessage failed
2024-01-23 12:10:33 +07:00
andri lim
26a6cb1790
Client also handle error message if id is null ( #196 )
...
* Client also handle error message if id is null
* Reduce compiler warnings in testethcalls
* Fix gcsafe error
2024-01-21 12:06:18 +07:00
jangko
08ceae27e0
Move errors module back to json_rpc folder
2024-01-08 10:37:29 +07:00
jangko
2f6a605aa2
Reenable test hhtps
2024-01-04 11:53:15 +07:00
jangko
76dd352ace
Remove StringOfJson
2024-01-04 07:49:19 +07:00
andri lim
e0b077fea4
Upgrade rpc router internals ( #178 )
...
* Upgrade rpc router internals
* use new chronos asyncraises
* Fix style mismatch
* Fix nim v2 compilation error
* Addresing review
* Remove unnecessary custom serializer and let the library do the work
* fix error message
* Update readme.md
2024-01-03 20:06:53 +07:00
jangko
c3769f9130
Add copyright to source file
2023-12-14 08:34:13 +07:00
Etan Kissling
60c4c9b5f2
improve RPC client logging ( #171 )
...
We currently only debug log successfully sent messages to RPC.
For debugging, it would be better to see the attempt and any failures.
Adjust logging to provide more information when debugging.
Also include the message name at debug level instead of just trace.
2023-08-23 14:20:19 +02:00
Zahary Karadjov
172183e702
Allow the user to specify HttpClientFlags when creating a HTTP client
2023-05-05 02:25:36 +03:00
Zahary Karadjov
07e4705b1f
The ErrorResponse exception now preserves information about the HTTP status code and reason
2023-03-01 12:40:16 +02:00
Jacek Sieka
c0ecb42613
normalise nimble, update ci, unittest2 ( #158 )
2022-12-02 13:17:27 +01:00
Jacek Sieka
7c80b75856
fix enum parsing, work around potential `nil` dereference ( #150 )
...
* fix enum parsing, work around potential `nil` dereference
When the bizarre error handling in the http client fails, it may happen
that a nil is returned (maybe due to Nim bugs) - do it manually for now
2022-09-15 22:32:16 +03:00
Zahary Karadjov
335f292a58
Fix connection leaks in the HTTP client
2022-04-10 21:48:46 +03:00
Jacek Sieka
b4bab89abd
fix invalid raises annotations ( #132 )
...
* `raises` should not be used with async
* callbacks returning futures should not raise
2022-03-21 15:19:49 +01:00
Dustin Brody
b455958d8a
request header callback
2022-03-04 19:13:29 +00:00
tersec
0540afad4c
specify Content-Type: application/json HTTP header ( #129 )
2022-02-23 08:43:08 +01:00
Zahary Karadjov
97ba55bbf6
Release the HTTP sessions
2022-02-02 19:51:04 +02:00
Zahary Karadjov
c455198d4f
Eliminate code duplication in the HTTP/S servers
2021-11-22 20:24:11 +02:00
Zahary Karadjov
e4dba96f5c
Improve cancellation support and code style
2021-11-22 17:24:07 +02:00
Bernardo A. Rodrigues
3599a73b58
Chronos HTTP(S) Server ( #111 )
2021-11-22 15:14:30 +02:00
Zahary Karadjov
9db5407e81
Switch to Chronos HTTP client (adds support for HTTPS)
2021-11-22 15:14:27 +02:00
Jacek Sieka
64d40d6c1a
simplify imports ( #98 )
...
remove broken uint64 converter - upstream std/json also includes a
broken uint64 converter
2021-03-26 13:17:00 +01:00
Jacek Sieka
ac5288651c
Exception handling signatures ( #97 )
...
Minimally work around leaking `Exception` for
https://github.com/status-im/nim-chronos/pull/166
2021-03-26 11:53:03 +01:00
Jacek Sieka
4eb39203eb
fixes ( #95 )
...
* fixes
* fix https://github.com/status-im/nimbus-eth2/issues/1650
* only one of `result` and `error` allowed in response
* fix invalid `string` instances being created from byte sequences
* fix large int64 parsing on 32-bit
* fix exception inheritance
* fix some dangling results
* some cleanups
* annotate exception issues, fix cancellation
* more error handling cleanup
* add rudimentary error tests
* cleanups
* simplify init
* use nextId -> lastId to avoid =1 init
* remove obsolete tests
2021-02-15 13:45:51 +01:00
Zahary Karadjov
f53e0b960b
Fix all tests
2020-03-17 22:05:42 +02:00
Ștefan Talpalaru
72a99cc977
replace getCurrentExceptionMsg() and delete some unused imports
2019-12-02 12:26:09 +01:00
Yuriy Glukhov
07e82fa194
Allow creating http client from url
2019-07-31 12:38:17 +03:00
Ștefan Talpalaru
8168fcea25
fix some problems raised by Nim 0.20.2
2019-07-19 13:48:26 +03:00
Zahary Karadjov
9d0326aad4
Allow building with chronicles_sinks=json
2019-06-20 18:57:13 +03:00
Yuriy Glukhov
b583dfb029
Use closeWait
2019-06-17 19:56:19 +03:00
Yuriy Glukhov
f19d66b35c
Websocket client support and some fixes
2019-06-12 20:53:15 +03:00
cheatfate
a56ad7dfcb
Fix freezes on *nix systems.
2019-05-14 18:42:51 +03:00
cheatfate
2d3db88137
Fix deprecated warnings.
2019-03-25 19:28:31 +02:00
Mamy Ratsimbazafy
53ed44dfa5
Rebrand asyncdispatch2 to chronos ( #50 )
2019-02-06 18:27:58 +01:00
Ștefan Talpalaru
1083b2972a
support Content-Type headers with specified charset
...
and add RPC message content to the debugging output (at the TRACE level,
disabled by default)
2019-01-28 12:39:27 +02:00
andri lim
0cdeb04a12
fix httpclient logScope 'topic' to 'topics'
2019-01-16 13:03:57 +02:00
andri lim
b9286104e7
use HTTP1.0 and drop connection:keep-alive
2019-01-12 16:17:19 +02:00
cheatfate
6a0b0ff30d
Fix support of `Content-Length` response header.
2018-12-10 13:56:10 +02:00
andri lim
3c4c5559f1
add httpMethod param to httpclient.call
2018-11-13 10:22:43 +07:00
andri lim
06637848de
remove httpmethod enum
2018-11-12 21:02:54 +07:00
andri lim
965e2c16f5
fixes #38 add http method get/set to httpclient
2018-11-12 11:43:51 +07:00
andri lim
d224b7dea7
add host to http header
2018-11-07 22:43:52 +07:00
cheatfate
0942b0387d
Add RpcHttpServer.
...
Add RpcHttpClient.
2018-07-14 10:51:54 +03:00