interface: use parse_json
This commit is contained in:
@@ -25,7 +25,7 @@ import traceback
|
|||||||
import json
|
import json
|
||||||
import Queue
|
import Queue
|
||||||
from network import Network
|
from network import Network
|
||||||
from util import print_error, print_stderr
|
from util import print_error, print_stderr, parse_json
|
||||||
from simple_config import SimpleConfig
|
from simple_config import SimpleConfig
|
||||||
|
|
||||||
|
|
||||||
@@ -39,15 +39,6 @@ Network also reports status changes
|
|||||||
DAEMON_PORT=8001
|
DAEMON_PORT=8001
|
||||||
|
|
||||||
|
|
||||||
def parse_json(message):
|
|
||||||
n = message.find('\n')
|
|
||||||
if n==-1:
|
|
||||||
return None, message
|
|
||||||
try:
|
|
||||||
j = json.loads( message[0:n] )
|
|
||||||
except:
|
|
||||||
j = None
|
|
||||||
return j, message[n+1:]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ DEFAULT_TIMEOUT = 5
|
|||||||
proxy_modes = ['socks4', 'socks5', 'http']
|
proxy_modes = ['socks4', 'socks5', 'http']
|
||||||
|
|
||||||
|
|
||||||
|
from util import parse_json
|
||||||
|
|
||||||
def cert_verify_hostname(s):
|
def cert_verify_hostname(s):
|
||||||
# hostname verification (disabled)
|
# hostname verification (disabled)
|
||||||
@@ -392,7 +392,7 @@ class Interface(threading.Thread):
|
|||||||
def run_tcp(self):
|
def run_tcp(self):
|
||||||
try:
|
try:
|
||||||
#if self.use_ssl: self.s.do_handshake()
|
#if self.use_ssl: self.s.do_handshake()
|
||||||
out = ''
|
message = ''
|
||||||
while self.is_connected:
|
while self.is_connected:
|
||||||
try:
|
try:
|
||||||
timeout = False
|
timeout = False
|
||||||
@@ -417,18 +417,16 @@ class Interface(threading.Thread):
|
|||||||
self.send([('server.version', [ELECTRUM_VERSION, PROTOCOL_VERSION])], self.on_version)
|
self.send([('server.version', [ELECTRUM_VERSION, PROTOCOL_VERSION])], self.on_version)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
out += msg
|
message += msg
|
||||||
self.bytes_received += len(msg)
|
self.bytes_received += len(msg)
|
||||||
if msg == '':
|
if msg == '':
|
||||||
self.is_connected = False
|
self.is_connected = False
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
s = out.find('\n')
|
response, message = parse_json(message)
|
||||||
if s==-1: break
|
if response is None:
|
||||||
c = out[0:s]
|
break
|
||||||
out = out[s+1:]
|
self.process_response(response)
|
||||||
c = json.loads(c)
|
|
||||||
self.process_response(c)
|
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
traceback.print_exc(file=sys.stdout)
|
traceback.print_exc(file=sys.stdout)
|
||||||
|
|||||||
@@ -25,10 +25,10 @@ import traceback
|
|||||||
import json
|
import json
|
||||||
import Queue
|
import Queue
|
||||||
from network import Network
|
from network import Network
|
||||||
from util import print_error, print_stderr
|
from util import print_error, print_stderr, parse_json
|
||||||
from simple_config import SimpleConfig
|
from simple_config import SimpleConfig
|
||||||
|
|
||||||
from daemon import parse_json, NetworkServer, DAEMON_PORT
|
from daemon import NetworkServer, DAEMON_PORT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
12
lib/util.py
12
lib/util.py
@@ -211,3 +211,15 @@ def raw_input(prompt=None):
|
|||||||
import __builtin__
|
import __builtin__
|
||||||
builtin_raw_input = __builtin__.raw_input
|
builtin_raw_input = __builtin__.raw_input
|
||||||
__builtin__.raw_input = raw_input
|
__builtin__.raw_input = raw_input
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def parse_json(message):
|
||||||
|
n = message.find('\n')
|
||||||
|
if n==-1:
|
||||||
|
return None, message
|
||||||
|
try:
|
||||||
|
j = json.loads( message[0:n] )
|
||||||
|
except:
|
||||||
|
j = None
|
||||||
|
return j, message[n+1:]
|
||||||
|
|||||||
Reference in New Issue
Block a user