summaryrefslogtreecommitdiffstats
path: root/module/remote/ClientSocket.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/remote/ClientSocket.py')
-rw-r--r--module/remote/ClientSocket.py20
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)
+