mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge 10.11 into 11.0
This commit is contained in:
@ -2938,6 +2938,7 @@ bool acl_reload(THD *thd)
|
||||
}
|
||||
|
||||
acl_cache->clear(0);
|
||||
mysql_mutex_record_order(&acl_cache->lock, &LOCK_status);
|
||||
mysql_mutex_lock(&acl_cache->lock);
|
||||
|
||||
old_acl_hosts= acl_hosts;
|
||||
@ -7618,7 +7619,7 @@ static bool can_grant_role(THD *thd, ACL_ROLE *role)
|
||||
{
|
||||
Security_context *sctx= thd->security_ctx;
|
||||
|
||||
if (!sctx->user) // replication
|
||||
if (!sctx->is_user_defined()) // galera
|
||||
return true;
|
||||
|
||||
ACL_USER *grantee= find_user_exact(sctx->priv_host, sctx->priv_user);
|
||||
@ -13339,8 +13340,27 @@ static bool send_server_handshake_packet(MPVIO_EXT *mpvio,
|
||||
*end++= 0;
|
||||
|
||||
int2store(end, thd->client_capabilities);
|
||||
|
||||
CHARSET_INFO *handshake_cs= default_charset_info;
|
||||
if (handshake_cs->number > 0xFF)
|
||||
{
|
||||
/*
|
||||
A workaround for a 2-byte collation ID: translate it into
|
||||
the ID of the primary collation of this character set.
|
||||
*/
|
||||
CHARSET_INFO *cs= get_charset_by_csname(handshake_cs->cs_name.str,
|
||||
MY_CS_PRIMARY, MYF(MY_WME));
|
||||
/*
|
||||
cs should not normally be NULL, however it may be possible
|
||||
with a dynamic character set incorrectly defined in Index.xml.
|
||||
For safety let's fallback to latin1 in case cs is NULL.
|
||||
*/
|
||||
handshake_cs= cs ? cs : &my_charset_latin1;
|
||||
}
|
||||
|
||||
/* write server characteristics: up to 16 bytes allowed */
|
||||
end[2]= (char) default_charset_info->number;
|
||||
end[2]= (char) handshake_cs->number;
|
||||
|
||||
int2store(end+3, mpvio->auth_info.thd->server_status);
|
||||
int2store(end+5, thd->client_capabilities >> 16);
|
||||
end[7]= data_len;
|
||||
|
Reference in New Issue
Block a user