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 rval;
uint64_t intver = UINT64_MAX;
std::string rval = GW_MYSQL_VERSION;
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;
intver = ref->server->version;
if (ref->server->version && ref->server->version < intver)
{
rval = ref->server->version_string;
intver = ref->server->version;
}
}
}
// Get the version string from service if no server version is available
if (rval.empty())
// Older applications don't understand versions other than 5 and cause strange problems
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;