[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