server.py
changeset 4 4cee17e91d29
parent 3 234fa7eea0df
child 5 5ab3cc2e7851
     1.1 --- a/server.py	Mon Jun 14 14:32:12 2010 +0200
     1.2 +++ b/server.py	Mon Jun 14 23:16:47 2010 +0200
     1.3 @@ -3,6 +3,8 @@
     1.4  import com
     1.5  import worker
     1.6  import optparse
     1.7 +import pickle
     1.8 +import hashlib
     1.9  import subprocess
    1.10  import SocketServer
    1.11  
    1.12 @@ -14,17 +16,24 @@
    1.13  	"""
    1.14  	"""	
    1.15  	def handle(self):
    1.16 -		data = self.request[0].strip()
    1.17 +		data = self.request[0]
    1.18  		socket = self.request[1]
    1.19  		print "%s wrote:" % self.client_address[0]
    1.20  		print data
    1.21 +		key_found = False
    1.22  		for key, value in com.commands.iteritems():
    1.23  			if key in data:
    1.24 +				key_found = True
    1.25  				args = data.partition(key)[2].split()				
    1.26  				if args:
    1.27  					value[0](socket, self.client_address, self.worker, args)
    1.28  				else:
    1.29  					value[0](socket, self.client_address, self.worker)
    1.30 +		if not key_found:
    1.31 +			cell = pickle.loads(data)
    1.32 +			self.cells[cell[0]] = cell[1]
    1.33 +			#print hashlib.sha256(str(self.cells)).hexdigest()
    1.34 +			
    1.35  		
    1.36  class Server(SocketServer.UDPServer):
    1.37  	def __init__(self, host, port, handler, options, worker):
    1.38 @@ -34,6 +43,7 @@
    1.39  		self.handler = handler
    1.40  		self.options = options
    1.41  		self.handler.worker = worker
    1.42 +		self.handler.cells = {}
    1.43  	def run(self):
    1.44  		self.serve_forever()
    1.45