self.config = config
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- self.socket.connect(('', 8000))
+ self.daemon_port = config.get('daemon_port', 8000)
+ self.socket.connect(('', self.daemon_port))
self.message_id = 0
self.unanswered_requests = {}
self.subscriptions = {}
- self.debug = True
+ self.debug = False
self.lock = threading.Lock()
def process(self, response):
# runs callbacks
- #print "<--", response
+ if self.debug: print "<--", response
msg_id = response.get('id')
with self.lock:
request = json.dumps( { 'id':self.message_id, 'method':method, 'params':params } )
self.unanswered_requests[self.message_id] = method, params, callback
ids.append(self.message_id)
- # print "-->", request
+ if self.debug: print "-->", request
self.message_id += 1
out += request + '\n'
while out:
self.network = network
self.queue = Queue.Queue()
self.unanswered_requests = {}
+ self.debug = False
def run(self):
def process(self, request):
- #print "<--", request
+ if self.debug: print "<--", request
method = request['method']
params = request['params']
_id = request['id']
except BaseException as e:
out['error'] =str(e)
self.queue.put(out)
+ return
if method == 'daemon.shutdown':
self.server.running = False
while out:
n = self.s.send(out)
out = out[n:]
- #print "-->", r
+ if self.debug: print "-->", r
self.network = network
self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- self.server.bind(('', 8000))
+ self.daemon_port = config.get('daemon_port', 8000)
+ self.server.bind(('', self.daemon_port))
self.server.listen(5)
self.server.settimeout(1)
self.running = False
- self.timeout = 60
+ self.timeout = config.get('daemon_timeout', 60)
def main_loop(self):
-def start_daemon(config):
- pid = os.fork()
- if (pid == 0): # The first child.
- os.chdir("/")
- os.setsid()
- os.umask(0)
- pid2 = os.fork()
- if (pid2 == 0): # Second child
- server = NetworkServer(config)
- try:
- server.main_loop()
- except KeyboardInterrupt:
- print "Ctrl C - Stopping server"
- sys.exit(1)
-
- sys.exit(0)
-
- # should use a signal
- time.sleep(2)
-
-
-
if __name__ == '__main__':
import simple_config
config = simple_config.SimpleConfig({'verbose':True, 'server':'ecdsa.net:50002:s'})