[Oval-commits] r159 - in trunk/oval-server: OvalServer dba

Pavel Vinogradov blaze-guest at alioth.debian.org
Mon Aug 20 05:11:30 UTC 2007


Author: blaze-guest
Date: 2007-08-20 05:11:30 +0000 (Mon, 20 Aug 2007)
New Revision: 159

Modified:
   trunk/oval-server/OvalServer/OvalHttpServer.py
   trunk/oval-server/dba/dba.py
Log:
Rewrite agent handling code

Modified: trunk/oval-server/OvalServer/OvalHttpServer.py
===================================================================
--- trunk/oval-server/OvalServer/OvalHttpServer.py	2007-08-20 04:42:28 UTC (rev 158)
+++ trunk/oval-server/OvalServer/OvalHttpServer.py	2007-08-20 05:11:30 UTC (rev 159)
@@ -1,5 +1,6 @@
 import SimpleHTTPServer, BaseHTTPServer
 from OpenSSL import SSL
+from dba import dba
 import os, sys, socket
 import xml.dom.ext
 import logging
@@ -35,25 +36,38 @@
 
 	def do_GET (self):
 		self.server.logger.info ('httpServer: Process GET %s' % self.path)
-		
-		try:
-			#Add check for ../../ names
-			if self.path.endswith('.xml'):
-				f = open (self.workdir + os.sep + 'definitions' + os.sep + self.path)
+		db = dba.dba ('/tmp/oval-server.db')
+		client_ip = self.client_address[0]
+		if db.getAgentInfo(client_ip):
+			try:
+				f = open (self.workdir+os.sep+client_ip)
 				self.send_response(200)
 				self.send_header('Content-type', 'text/xml')
 				self.end_headers()
 				self.wfile.write(f.read())
 				f.close()
 				return
-			else:
-				self.send_response(200)
-				self.send_header('Content-type', 'text/xml')
-				self.end_headers()
-				xml.dom.ext.PrettyPrint (ls(self.workdir + os.sep + 'definitions'), self.wfile)
-				return
-		except IOError:
-			self.send_error(404, 'File Not Found: %s' % self.path)
+			except IOError:
+				self.send_error(404, 'File Not Found: %s' % client_ip)
+		else:
+			db.addAgent(client_ip)
+#		try:
+#			#Add check for ../../ names
+#			if self.path.endswith('.xml'):
+#				f = open (self.workdir + os.sep + 'definitions' + os.sep + self.path)
+#				self.send_response(200)
+#				self.send_header('Content-type', 'text/xml')
+#				self.end_headers()
+#				self.wfile.write(f.read())
+#				f.close()
+#				return
+#			else:
+#				self.send_response(200)
+#				self.send_header('Content-type', 'text/xml')
+#				self.end_headers()
+#				xml.dom.ext.PrettyPrint (ls(self.workdir + os.sep + 'definitions'), self.wfile)
+#				return
+		
 			
 class HttpsRequestHandler (HttpRequestHandler):
 	"""http request handler with QUIT stopping the server"""

Modified: trunk/oval-server/dba/dba.py
===================================================================
--- trunk/oval-server/dba/dba.py	2007-08-20 04:42:28 UTC (rev 158)
+++ trunk/oval-server/dba/dba.py	2007-08-20 05:11:30 UTC (rev 159)
@@ -1,8 +1,15 @@
 from pysqlite2 import dbapi2 as db
+from datetime import datetime
 
 class dbaNotInitialized(Exception):
 	pass
 
+class AgentAlreadyExistExiption(Exception):
+	pass
+
+class AgentDoesNotExistExiption(Exception):
+	pass
+
 class dba:
 	
 	__dbStruct = """		
@@ -76,8 +83,15 @@
 			raise AgentAlreadyExistExiption
 		else:
 			self.cursor.execute ('INSERT INTO agents (agentName, agentTimestamp) VALUES (\'%s\', \'%s\')' %
-								(agentName, '22'))
-						
+								(agentName, datetime.now().strftime('%Y-%m-%d %H:%M')))
+	
+	def getAgentInfo(self, agentName):
+		self.cursor.execute ('SELECT agentID FROM agents WHERE agentName = \'%s\'' % agentName)
+		if self.cursor.fetchall():
+			return 1
+		else:
+			return 0
+
 	def getDSAreport (self):
 		self.cursor.execute ('SELECT vulnDSA, vulnTimestamp, vulnLocation from vulnerabilities;')
 		return (self.cursor.fetchall())




More information about the Oval-commits mailing list