Official Go implementation of the Ethereum protocol
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Sina Mahmoodi
f20eba426a
graphql, node, rpc: improve HTTP write timeout handling ( #25457 )
...
Here we add special handling for sending an error response when the write timeout of the
HTTP server is just about to expire. This is surprisingly difficult to get right, since is
must be ensured that all output is fully flushed in time, which needs support from
multiple levels of the RPC handler stack:
The timeout response can't use chunked transfer-encoding because there is no way to write
the final terminating chunk. net/http writes it when the topmost handler returns, but the
timeout will already be over by the time that happens. We decided to disable chunked
encoding by setting content-length explicitly.
Gzip compression must also be disabled for timeout responses because we don't know the
true content-length before compressing all output, i.e. compression would reintroduce
chunked transfer-encoding.
2 years ago
..
testdata
rpc: improve error codes for internal server errors ( #25678 )
2 years ago
client.go
graphql, node, rpc: improve HTTP write timeout handling ( #25457 )
2 years ago
client_example_test.go
rpc: make ExampleClientSubscription work with the geth API ( #19483 )
5 years ago
client_opt.go
node, rpc: add JWT auth support in client ( #24911 )
2 years ago
client_opt_test.go
node, rpc: add JWT auth support in client ( #24911 )
2 years ago
client_test.go
rpc: handle wrong HTTP batch response length ( #26064 )
2 years ago
constants_unix.go
all: add go:build lines ( #23468 )
3 years ago
constants_unix_nocgo.go
all: add go:build lines ( #23468 )
3 years ago
context_headers.go
rpc: support injecting HTTP headers through context ( #26023 )
2 years ago
doc.go
build: upgrade to go 1.19 ( #25726 )
2 years ago
endpoints.go
trie, rpc, cmd/geth: fix tests on 32-bit and windows + minor rpc fixes ( #21871 )
4 years ago
errors.go
graphql, node, rpc: improve HTTP write timeout handling ( #25457 )
2 years ago
handler.go
graphql, node, rpc: improve HTTP write timeout handling ( #25457 )
2 years ago
http.go
graphql, node, rpc: improve HTTP write timeout handling ( #25457 )
2 years ago
http_test.go
rpc: support injecting HTTP headers through context ( #26023 )
2 years ago
inproc.go
rpc, p2p/simulations: use github.com/gorilla/websocket ( #20289 )
5 years ago
ipc.go
node, rpc: add JWT auth support in client ( #24911 )
2 years ago
ipc_js.go
all: add go:build lines ( #23468 )
3 years ago
ipc_unix.go
all: add go:build lines ( #23468 )
3 years ago
ipc_windows.go
all: add go:build lines ( #23468 )
3 years ago
json.go
graphql, node, rpc: improve HTTP write timeout handling ( #25457 )
2 years ago
metrics.go
rpc: swap out timer metrics to histograms
2 years ago
server.go
graphql, node, rpc: improve HTTP write timeout handling ( #25457 )
2 years ago
server_test.go
rpc: improve error codes for internal server errors ( #25678 )
2 years ago
service.go
rpc: improve error codes for internal server errors ( #25678 )
2 years ago
stdio.go
node, rpc: add JWT auth support in client ( #24911 )
2 years ago
subscription.go
graphql, node, rpc: improve HTTP write timeout handling ( #25457 )
2 years ago
subscription_test.go
rpc: check that "version" is "2.0" in request objects ( #25570 )
2 years ago
testservice_test.go
rpc: improve error codes for internal server errors ( #25678 )
2 years ago
types.go
graphql, node, rpc: improve HTTP write timeout handling ( #25457 )
2 years ago
types_test.go
rpc: add BlockNumber.MarshalText ( #23324 )
3 years ago
websocket.go
graphql, node, rpc: improve HTTP write timeout handling ( #25457 )
2 years ago
websocket_test.go
rpc, internal/guide: speed up tests a bit ( #26193 )
2 years ago