mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
Merge mysql.com:/home/jimw/my/mysql-5.0-11822
into mysql.com:/home/jimw/my/mysql-5.0-clean
This commit is contained in:
commit
39efcdcf7c
2 changed files with 19 additions and 21 deletions
|
@ -130,15 +130,23 @@ void reset_host_errors(struct in_addr *in)
|
|||
VOID(pthread_mutex_unlock(&hostname_cache->lock));
|
||||
}
|
||||
|
||||
/* Deal with systems that don't defined INADDR_LOOPBACK */
|
||||
#ifndef INADDR_LOOPBACK
|
||||
#define INADDR_LOOPBACK 0x7f000001UL
|
||||
#endif
|
||||
|
||||
my_string ip_to_hostname(struct in_addr *in, uint *errors)
|
||||
{
|
||||
uint i;
|
||||
host_entry *entry;
|
||||
DBUG_ENTER("ip_to_hostname");
|
||||
*errors=0;
|
||||
|
||||
/* We always treat the loopback address as "localhost". */
|
||||
if (in->s_addr == INADDR_LOOPBACK)
|
||||
return (char *)my_localhost;
|
||||
|
||||
/* Check first if we have name in cache */
|
||||
*errors=0;
|
||||
if (!(specialflag & SPECIAL_NO_HOST_CACHE))
|
||||
{
|
||||
VOID(pthread_mutex_lock(&hostname_cache->lock));
|
||||
|
|
|
@ -775,29 +775,19 @@ static int check_connection(THD *thd)
|
|||
return (ER_OUT_OF_RESOURCES);
|
||||
thd->host_or_ip= thd->ip;
|
||||
vio_in_addr(net->vio,&thd->remote.sin_addr);
|
||||
#if !defined(HAVE_SYS_UN_H) || defined(HAVE_mit_thread)
|
||||
/* Fast local hostname resolve for Win32 */
|
||||
if (!strcmp(thd->ip,"127.0.0.1"))
|
||||
if (!(specialflag & SPECIAL_NO_RESOLVE))
|
||||
{
|
||||
thd->host= (char*) my_localhost;
|
||||
thd->host_or_ip= my_localhost;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
if (!(specialflag & SPECIAL_NO_RESOLVE))
|
||||
vio_in_addr(net->vio,&thd->remote.sin_addr);
|
||||
thd->host=ip_to_hostname(&thd->remote.sin_addr,&connect_errors);
|
||||
/* Cut very long hostnames to avoid possible overflows */
|
||||
if (thd->host)
|
||||
{
|
||||
vio_in_addr(net->vio,&thd->remote.sin_addr);
|
||||
thd->host=ip_to_hostname(&thd->remote.sin_addr,&connect_errors);
|
||||
/* Cut very long hostnames to avoid possible overflows */
|
||||
if (thd->host)
|
||||
{
|
||||
thd->host[min(strlen(thd->host), HOSTNAME_LENGTH)]= 0;
|
||||
thd->host_or_ip= thd->host;
|
||||
}
|
||||
if (connect_errors > max_connect_errors)
|
||||
return(ER_HOST_IS_BLOCKED);
|
||||
if (thd->host != my_localhost)
|
||||
thd->host[min(strlen(thd->host), HOSTNAME_LENGTH)]= 0;
|
||||
thd->host_or_ip= thd->host;
|
||||
}
|
||||
if (connect_errors > max_connect_errors)
|
||||
return(ER_HOST_IS_BLOCKED);
|
||||
}
|
||||
DBUG_PRINT("info",("Host: %s ip: %s",
|
||||
thd->host ? thd->host : "unknown host",
|
||||
|
|
Loading…
Reference in a new issue