Commit Graph

12 Commits

Author SHA1 Message Date
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