import optparse
import os
import re
+import ast
import sys
import time
import traceback
parser.add_option("-G", "--gap", dest="gap_limit", default=None, help="gap limit")
parser.add_option("-W", "--password", dest="password", default=None, help="set password for usage with commands (currently only implemented for create command, do not use it for longrunning gui session since the password is visible in /proc)")
parser.add_option("-1", "--oneserver", action="store_true", dest="oneserver", default=False, help="connect to one server only")
- parser.add_option("--bip32", action="store_true", dest="bip32", default=False, help="bip32")
- parser.add_option("--mpk", dest="mpk", default=False, help="master public key")
+ parser.add_option("--bip32", action="store_true", dest="bip32", default=False, help="bip32 (not final)")
+ parser.add_option("--mpk", dest="mpk", default=False, help="restore from master public key")
return parser
print_msg("Network daemon connected to " + network.interface.connection_msg)
from SimpleXMLRPCServer import SimpleXMLRPCServer
server = SimpleXMLRPCServer(('localhost',8000), allow_none=True, logRequests=False)
+ server.network = network
server.register_function(lambda: 'pong', 'ping')
server.register_function(network.synchronous_get, 'synchronous_get')
server.register_function(network.get_servers, 'get_servers')
if (pid2 == 0): # Second child
server = start_server()
server.running = True
+ timeout = 60
+ t0 = time.time()
+ server.socket.settimeout(timeout)
while server.running:
server.handle_request()
- print_msg("Daemon stopped")
+ t = time.time()
+ if t - t0 > 0.9*timeout:
+ break
+ if not server.network.is_connected():
+ break
+ t0 = t
sys.exit(0)
time.sleep(2)
elif cmd.name == 'setconfig':
key, value = args[1:3]
+ try:
+ value = ast.literal_eval(value)
+ except:
+ pass
config.set_key(key, value, True)
print_msg(True)