diff options
Diffstat (limited to 'module/remote/ClientSocket.py')
-rw-r--r-- | module/remote/ClientSocket.py | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/module/remote/ClientSocket.py b/module/remote/ClientSocket.py index 9c52681c7..68e6ee884 100644 --- a/module/remote/ClientSocket.py +++ b/module/remote/ClientSocket.py @@ -13,22 +13,35 @@ import threading import time from ClientHandler import ClientHandler +from RequestObject import RequestObject class SocketThread(threading.Thread): def __init__(self, adress, port, pw, client): threading.Thread.__init__(self) + self.setDaemon(True) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((adress, port)) self.socket = ClientSocket(sock, pw, client) self.start() + def run(self): asyncore.loop() print "loop closed" + def push_exec(self, function, args=[]): + obj = RequestObject() + obj.command = "exec" + obj.function = function + obj.args = args + self.push(obj) + + def push(self, obj): + self.socket.push_obj(obj) + class ClientSocket(asynchat.async_chat): def __init__(self, sock, pw, client): - asynchat.async_chat.__init__(self, conn=sock) + asynchat.async_chat.__init__(self, sock) self.data = "" self.handler = ClientHandler(client, pw) self.set_terminator("\n") @@ -46,3 +59,8 @@ class ClientSocket(asynchat.async_chat): #self.push(obj+"\n") print "data arrived" self.data = "" + + def push_obj(self, obj): + string = self.handler.encrypt(obj) + self.push(string) + |