interface: use parse_json

This commit is contained in:
ThomasV 2014-07-26 16:24:22 +02:00
parent 9a07c1cb44
commit 9efc25bdba
4 changed files with 22 additions and 21 deletions

View File

@ -25,7 +25,7 @@ import traceback
import json
import Queue
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
@ -39,15 +39,6 @@ Network also reports status changes
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:]

View File

@ -33,7 +33,7 @@ DEFAULT_TIMEOUT = 5
proxy_modes = ['socks4', 'socks5', 'http']
from util import parse_json
def cert_verify_hostname(s):
# hostname verification (disabled)
@ -392,7 +392,7 @@ class Interface(threading.Thread):
def run_tcp(self):
try:
#if self.use_ssl: self.s.do_handshake()
out = ''
message = ''
while self.is_connected:
try:
timeout = False
@ -417,18 +417,16 @@ class Interface(threading.Thread):
self.send([('server.version', [ELECTRUM_VERSION, PROTOCOL_VERSION])], self.on_version)
continue
out += msg
message += msg
self.bytes_received += len(msg)
if msg == '':
self.is_connected = False
while True:
s = out.find('\n')
if s==-1: break
c = out[0:s]
out = out[s+1:]
c = json.loads(c)
self.process_response(c)
response, message = parse_json(message)
if response is None:
break
self.process_response(response)
except Exception:
traceback.print_exc(file=sys.stdout)

View File

@ -25,10 +25,10 @@ import traceback
import json
import Queue
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 daemon import parse_json, NetworkServer, DAEMON_PORT
from daemon import NetworkServer, DAEMON_PORT

View File

@ -211,3 +211,15 @@ def raw_input(prompt=None):
import __builtin__
builtin_raw_input = __builtin__.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:]