[Oval-commits] r282 - in trunk/oval-server: . oval/server

Pavel Vinogradov blaze-guest at alioth.debian.org
Tue Oct 30 17:19:30 UTC 2007


Author: blaze-guest
Date: 2007-10-30 17:19:29 +0000 (Tue, 30 Oct 2007)
New Revision: 282

Modified:
   trunk/oval-server/oval-server.py
   trunk/oval-server/oval/server/OvalHttpServer.py
Log:
Implement socket timeouts

Modified: trunk/oval-server/oval/server/OvalHttpServer.py
===================================================================
--- trunk/oval-server/oval/server/OvalHttpServer.py	2007-10-30 17:13:46 UTC (rev 281)
+++ trunk/oval-server/oval/server/OvalHttpServer.py	2007-10-30 17:19:29 UTC (rev 282)
@@ -66,22 +66,38 @@
 
 class OvalHttpServer (BaseHTTPServer.HTTPServer):
 	
-	__status = None
+	__status = False
 	
 	def __init__(self, conf, handler, workdir, logger = None):
 		BaseHTTPServer.HTTPServer.__init__ (self, conf, handler)
 		self.workdir = workdir
+		self.__status = True
 		
 		if logger:
 			self.logger = logger
 		else:
 			self.logger = logging.basicConfig
+
+	def server_bind(self):
+		BaseHTTPServer.HTTPServer.server_bind(self)
+		self.socket.settimeout(1)
+
+	def get_request(self):
+		while self.__status:
+			try:
+				sock, addr = self.socket.accept()
+				sock.settimeout(None)
+				return (sock, addr)
+			except socket.timeout:
+				pass
+			except keyboard.Exception:
+				self.logger.debug ('httpServer: Shutdown')
+				return (None, None)
 			
 	def serve_forever (self):
 		"""Handle one request at a time until stopped."""
 		self.logger.info ('httpServer: Start request handling')
 		
-		self.__status = True	
 		while self.__status:
 			self.handle_request()
 		self.logger.debug ('httpServer: Shutdown')

Modified: trunk/oval-server/oval-server.py
===================================================================
--- trunk/oval-server/oval-server.py	2007-10-30 17:13:46 UTC (rev 281)
+++ trunk/oval-server/oval-server.py	2007-10-30 17:19:29 UTC (rev 282)
@@ -83,7 +83,7 @@
 			self.logger.info('syncThread: Run ftp updater %s with: %s, %s' % (self.name, self.source, self.update_interval))
 			
 	def run (self):
-		self.__status = 1
+		self.__status = True
 		self.db = dba ()
 		conv = convertor.Dsa2Oval (self.workdir)
 		
@@ -107,7 +107,7 @@
 		self.logger.debug('syncThread: Shutdown')
 
 	def stop(self):
-				self.__status = None
+				self.__status = False
 
 class mainThread:
 	""" Main program thread. 




More information about the Oval-commits mailing list