|
@@ -146,8 +146,18 @@ class PlatformRepository extends ArrayRepository
|
|
|
break;
|
|
|
|
|
|
case 'openssl':
|
|
|
- $prettyVersion = preg_replace_callback('{^(?:OpenSSL\s*)?([0-9.]+)([a-z]?).*}', function ($match) {
|
|
|
- return $match[1] . (empty($match[2]) ? '' : '.'.(ord($match[2]) - 96));
|
|
|
+ $prettyVersion = preg_replace_callback('{^(?:OpenSSL\s*)?([0-9.]+)([a-z]+).*}', function ($match) {
|
|
|
+ if (empty($match[2])) {
|
|
|
+ return $match[1];
|
|
|
+ }
|
|
|
+
|
|
|
+ // OpenSSL versions add another letter when they reach Z.
|
|
|
+ // e.g. OpenSSL 0.9.8zh 3 Dec 2015
|
|
|
+ $patchVersion = array_sum(array_map(function ($letter) {
|
|
|
+ return ord($letter) - 96;
|
|
|
+ }, str_split($match[2])));
|
|
|
+
|
|
|
+ return $match[1].'.'.$patchVersion;
|
|
|
}, OPENSSL_VERSION_TEXT);
|
|
|
break;
|
|
|
|