MXS-1738 Copy AF_UNIX data from listener to client dcb
We need to copy some data from a AF_UNIX based listener dcb to the accepted client dcb, to prevent assertion violation in dcb_get_port(). Further, to be able to log the path in the case of an authentication error we need to copy that as well.
This commit is contained in:
@ -1235,7 +1235,7 @@ void dcb_final_close(DCB* dcb)
|
||||
MXS_DEBUG("Closed socket %d on dcb %p.", dcb->fd, dcb);
|
||||
}
|
||||
|
||||
if (dcb->path)
|
||||
if (dcb->path && (dcb->dcb_role == DCB_ROLE_SERVICE_LISTENER))
|
||||
{
|
||||
if (unlink(dcb->path) != 0)
|
||||
{
|
||||
@ -2396,7 +2396,9 @@ dcb_accept(DCB *dcb)
|
||||
if (client_conn.ss_family == AF_UNIX)
|
||||
{
|
||||
// client address
|
||||
client_dcb->ip.ss_family = AF_UNIX;
|
||||
client_dcb->remote = MXS_STRDUP_A("localhost");
|
||||
client_dcb->path = MXS_STRDUP_A(dcb->path);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -304,8 +304,16 @@ mysql_auth_authenticate(DCB *dcb)
|
||||
}
|
||||
else if (dcb->service->log_auth_warnings)
|
||||
{
|
||||
MXS_WARNING("%s: login attempt for user '%s'@[%s]:%d, authentication failed.",
|
||||
dcb->service->name, client_data->user, dcb->remote, dcb_get_port(dcb));
|
||||
if (dcb->path)
|
||||
{
|
||||
MXS_WARNING("%s: login attempt for user '%s'@[%s]:%s, authentication failed.",
|
||||
dcb->service->name, client_data->user, dcb->remote, dcb->path);
|
||||
}
|
||||
else
|
||||
{
|
||||
MXS_WARNING("%s: login attempt for user '%s'@[%s]:%d, authentication failed.",
|
||||
dcb->service->name, client_data->user, dcb->remote, dcb_get_port(dcb));
|
||||
}
|
||||
|
||||
if (is_localhost_address(&dcb->ip) &&
|
||||
!dcb->service->localhost_match_wildcard_host)
|
||||
|
Reference in New Issue
Block a user