Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c93e265

Browse files
committed
fix for that banner fetching issue reported by Daniel Huckmann
1 parent 8076984 commit c93e265

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

lib/parse/banner.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def __init__(self, banner, info):
4545
self.__inServicePack = False
4646
self.__release = None
4747
self.__version = ""
48+
self.__versionAlt = None
4849
self.__servicePack = ""
4950
self.__info = info
5051

@@ -74,17 +75,23 @@ def characters(self, data):
7475

7576
def endElement(self, name):
7677
if name == "signature":
77-
if re.search(" %s[\.\ ]+" % self.__version, self.__banner):
78-
self.__feedInfo("dbmsRelease", self.__release)
79-
self.__feedInfo("dbmsVersion", self.__version)
80-
self.__feedInfo("dbmsServicePack", self.__servicePack)
78+
for version in (self.__version, self.__versionAlt):
79+
if version and re.search(" %s[\.\ ]+" % version, self.__banner):
80+
self.__feedInfo("dbmsRelease", self.__release)
81+
self.__feedInfo("dbmsVersion", self.__version)
82+
self.__feedInfo("dbmsServicePack", self.__servicePack)
83+
break
8184

8285
self.__version = ""
86+
self.__versionAlt = None
8387
self.__servicePack = ""
8488

8589
elif name == "version":
8690
self.__inVersion = False
8791
self.__version = self.__version.replace(" ", "")
92+
93+
match = re.search(r"\A(?P<major>\d+)\.00\.(?P<build>\d+)\Z", self.__version)
94+
self.__versionAlt = "%s.0.%s.0" % (match.group('major'), match.group('build')) if match else None
8895

8996
elif name == "servicepack":
9097
self.__inServicePack = False

0 commit comments

Comments
 (0)