Neil Booth
b65bcda504
Add per-session bandwidth limits
2016-11-29 22:19:12 +09:00
Neil Booth
c9a10be5ba
Introduce incoming buffer size limit
...
- incoming buffered network requests limited to 150,000 bytes
which I believe is ample for a genuine client
- if exceeded, the connection is dropped
- raise outgoing data limit for RPC connections to 5 MB - expect
sessions calls can be long and connection is implicitly trusted
- similarly raise incoming buffered data limit to 5 MB for RPC
connections
2016-11-29 20:24:58 +09:00
Neil Booth
b2032b0a66
Fix 2 JSON RPC issues
2016-11-27 21:54:05 +09:00
Neil Booth
292073f2c7
Log large requests and reject them
2016-11-26 09:32:29 +09:00
Neil Booth
42c00d32d2
Rewrite lib/jsonrpc.py to be a useful client too
...
Use for an improved electrumx_rpc.py, so it now handles responses spread
over several packets. Also added a timeout of 5 seconds.
Fixes #43
2016-11-25 21:19:43 +09:00
Neil Booth
cebf93cdc3
Handle abuse better
...
- close connections on any encoding error
- if the connection is closing do not process buffered requests
2016-11-23 11:52:17 +09:00
Neil Booth
11ed1c4cae
Don't log decoding errors any more
...
The can be frequent.
Close connections once they reach 10 errors.
2016-11-22 06:45:22 +09:00
Neil Booth
95bb1588ab
Add missing await
2016-11-14 19:15:36 +09:00
Neil Booth
41fb143947
Fix typo
2016-11-13 23:18:04 +09:00
Neil Booth
0c2b4afbdc
Remove a debug log
2016-11-13 22:40:26 +09:00
Neil Booth
57dd4ece9c
Avoid annoying exception on shutdown
2016-11-13 17:52:08 +09:00
Neil Booth
3b6ab77e47
Break out JSONRPC into own file
...
- improved handling of JSON 2.0 RPC protocol
- permits batched requests (not yet supported by Electrum client)
2016-11-13 13:39:37 +09:00