diff options
| author | 2009-05-31 21:43:41 +0200 | |
|---|---|---|
| committer | 2009-05-31 21:43:41 +0200 | |
| commit | 1193b9c68caba33f19baa4265349a89ff5a777a6 (patch) | |
| tree | 63350f4f44b08a66cdc2be201174f7ec76ab96d3 /module | |
| parent | gui socket finally works (diff) | |
| download | pyload-1193b9c68caba33f19baa4265349a89ff5a777a6.tar.xz | |
socket interface example
Diffstat (limited to 'module')
| -rw-r--r-- | module/remote/ClientHandler.py | 3 | ||||
| -rw-r--r-- | module/remote/ClientSocket.py | 20 | ||||
| -rw-r--r-- | module/remote/RequestHandler.py | 2 | ||||
| -rw-r--r-- | module/remote/SocketServer.py | 3 | 
4 files changed, 23 insertions, 5 deletions
| diff --git a/module/remote/ClientHandler.py b/module/remote/ClientHandler.py index 6f60d5176..6f208a3f5 100644 --- a/module/remote/ClientHandler.py +++ b/module/remote/ClientHandler.py @@ -19,5 +19,6 @@ class ClientHandler(RequestHandler):      def proceed(self, data):          obj = self.decrypt(data) -	#evaluate object +	if obj.function == "get_downloads": +	    print obj.response          return self.encrypt(obj) 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) + diff --git a/module/remote/RequestHandler.py b/module/remote/RequestHandler.py index ec0bf0414..dd4fdeb5f 100644 --- a/module/remote/RequestHandler.py +++ b/module/remote/RequestHandler.py @@ -60,7 +60,7 @@ class RequestHandler:          enc_str = self.bf.encrypt(enc_str)          enc_str = base64.standard_b64encode(enc_str) -        return enc_str +        return enc_str + "\n" diff --git a/module/remote/SocketServer.py b/module/remote/SocketServer.py index e1b41dd1d..c9979adb8 100644 --- a/module/remote/SocketServer.py +++ b/module/remote/SocketServer.py @@ -35,7 +35,6 @@ class MainServerSocket(asyncore.dispatcher):      def handle_accept(self):          newSocket, address = self.accept()          print "Connected from", address -	print newSocket          SecondaryServerSocket(newSocket, self.pycore)      def handle_close(self):  	    print "going to close" @@ -54,7 +53,7 @@ class SecondaryServerSocket(asynchat.async_chat):          self.data += data      def found_terminator(self):          rep = self.handler.proceed(self.data) -        self.sendall(rep+"\n") +        self.push(rep)          print "data arrived"          self.data = ""          #having fun with the data | 
