diff --git a/src/opnsense/service/configd_ctl.py b/src/opnsense/service/configd_ctl.py index 2f794c221..a37cd043e 100755 --- a/src/opnsense/service/configd_ctl.py +++ b/src/opnsense/service/configd_ctl.py @@ -38,9 +38,10 @@ import sys __author__ = 'Ad Schellevis' -configd_socket_name = '/var/run/configd.socket' - +configd_socket_name = 'testing/configd.socket' +# set a timeout to the socket +socket.setdefaulttimeout(120) if len(sys.argv) <= 1: print 'usage : %s '%sys.argv[0] @@ -52,13 +53,21 @@ else: sock.connect(configd_socket_name) try: sock.send(exec_command) - data = [] + data = "" while True: line = sock.recv(4096) if line: - data.append(line) - else: + data = data + line + + if data.find("%c%c%c"%(chr(0),chr(0),chr(0))) > -1: break - print (''.join(data)) + + print (data[:-3]) finally: sock.close() + + + + + + diff --git a/src/opnsense/service/modules/processhandler.py b/src/opnsense/service/modules/processhandler.py index cb625a5c5..e8037c47e 100644 --- a/src/opnsense/service/modules/processhandler.py +++ b/src/opnsense/service/modules/processhandler.py @@ -103,7 +103,7 @@ class Handler(object): # run single threaded cmd_thread.run() else: - # rnu threaded + # run threaded cmd_thread.start() except KeyboardInterrupt: @@ -171,6 +171,9 @@ class HandlerClient(threading.Thread): # send response back to client( including trailing enter ) self.connection.sendall('%s\n'%result) + + # send end of stream characters + self.connection.sendall("%c%c%c"%(chr(0),chr(0),chr(0))) except: print (traceback.format_exc()) syslog.syslog(syslog.LOG_ERR,