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);
|
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)
|
if (unlink(dcb->path) != 0)
|
||||||
{
|
{
|
||||||
@ -2396,7 +2396,9 @@ dcb_accept(DCB *dcb)
|
|||||||
if (client_conn.ss_family == AF_UNIX)
|
if (client_conn.ss_family == AF_UNIX)
|
||||||
{
|
{
|
||||||
// client address
|
// client address
|
||||||
|
client_dcb->ip.ss_family = AF_UNIX;
|
||||||
client_dcb->remote = MXS_STRDUP_A("localhost");
|
client_dcb->remote = MXS_STRDUP_A("localhost");
|
||||||
|
client_dcb->path = MXS_STRDUP_A(dcb->path);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -304,8 +304,16 @@ mysql_auth_authenticate(DCB *dcb)
|
|||||||
}
|
}
|
||||||
else if (dcb->service->log_auth_warnings)
|
else if (dcb->service->log_auth_warnings)
|
||||||
{
|
{
|
||||||
MXS_WARNING("%s: login attempt for user '%s'@[%s]:%d, authentication failed.",
|
if (dcb->path)
|
||||||
dcb->service->name, client_data->user, dcb->remote, dcb_get_port(dcb));
|
{
|
||||||
|
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) &&
|
if (is_localhost_address(&dcb->ip) &&
|
||||||
!dcb->service->localhost_match_wildcard_host)
|
!dcb->service->localhost_match_wildcard_host)
|
||||||
|
Reference in New Issue
Block a user