MXS-2115: Fix regression

The 5.5.5 prefix in the version strings was not added.
This commit is contained in:
Markus Mäkelä
2018-10-30 18:36:07 +02:00
parent ceb4a18f59
commit 47e7595a08

View File

@ -198,22 +198,33 @@ static char *gw_default_auth()
std::string get_version_string(SERVICE* service) std::string get_version_string(SERVICE* service)
{ {
std::string rval; std::string rval = GW_MYSQL_VERSION;
uint64_t intver = UINT64_MAX;
for (SERVER_REF* ref = service->dbref; ref; ref = ref->next) if (service->version_string[0])
{ {
if (ref->server->version && ref->server->version < intver) // User-defined version string, use it
rval = service->version_string;
}
else
{
uint64_t intver = UINT64_MAX;
for (SERVER_REF* ref = service->dbref; ref; ref = ref->next)
{ {
rval = ref->server->version_string; if (ref->server->version && ref->server->version < intver)
intver = ref->server->version; {
rval = ref->server->version_string;
intver = ref->server->version;
}
} }
} }
// Get the version string from service if no server version is available // Older applications don't understand versions other than 5 and cause strange problems
if (rval.empty()) const char prefix[] = "5.5.5-";
if (strncmp(rval.c_str(), prefix, sizeof(prefix) - 1) != 0)
{ {
rval = service->version_string[0] ? service->version_string : GW_MYSQL_VERSION; rval = prefix + rval;
} }
return rval; return rval;