diff farol/controller.py @ 127:d49c1ee6bc07

Harden server-side version parsing
author Benoît Allard <benoit.allard@greenbone.net>
date Thu, 23 Oct 2014 16:50:02 +0200
parents 5535ac5fef37
children d2588d88d47a
line wrap: on
line diff
--- a/farol/controller.py	Thu Oct 23 16:32:33 2014 +0200
+++ b/farol/controller.py	Thu Oct 23 16:50:02 2014 +0200
@@ -38,7 +38,7 @@
 from flask import request
 
 from farolluz.cvrf import CVRFNote, CVRFReference, CVRFAcknowledgment
-from farolluz.parsers.cvrf import parseDate as parseXMLDate
+from farolluz.parsers.cvrf import parseDate as parseXMLDate, parseVersion as parseXMLVersion
 
 def split_fields(field, separator=','):
     if not field:
@@ -91,3 +91,8 @@
     m = re.match('(\d{4})-(\d{2})-(\d{2})', string)
     return datetime(int(m.group(1)), int(m.group(2)), int(m.group(3)),
                     tzinfo=timezone(timedelta(hours=0, minutes=0)))
+
+def parseVersion(string):
+    """ An extended version, one that doesn't throw exceptions """
+    try: return parseXMLVersion(string)
+    except ValueError: return None

http://farol.wald.intevation.org