1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Merge mysql.com:/home/hf/work/mysql-4.1.mrg

into  mysql.com:/home/hf/work/mysql-5.0.mrg


libmysqld/embedded_priv.h:
  Auto merged
sql-common/client.c:
  Auto merged
include/mysql.h:
  merging
libmysql/libmysql.c:
  merging
libmysqld/lib_sql.cc:
  merging
libmysqld/libmysqld.c:
  merging
sql/sql_parse.cc:
  merging
This commit is contained in:
unknown
2006-07-18 14:52:29 +05:00
8 changed files with 66 additions and 32 deletions

View File

@ -69,8 +69,8 @@ extern "C" int gethostname(char *name, int namelen);
static void time_out_user_resource_limits(THD *thd, USER_CONN *uc);
#ifndef NO_EMBEDDED_ACCESS_CHECKS
static int check_for_max_user_connections(THD *thd, USER_CONN *uc);
#endif
static void decrease_user_connections(USER_CONN *uc);
#endif /* NO_EMBEDDED_ACCESS_CHECKS */
static bool check_db_used(THD *thd,TABLE_LIST *tables);
static bool check_multi_update_lock(THD *thd);
static void remove_escape(char *name);
@ -204,6 +204,7 @@ static bool some_non_temp_table_to_be_updated(THD *thd, TABLE_LIST *tables)
return 0;
}
#ifndef NO_EMBEDDED_ACCESS_CHECKS
static HASH hash_user_connections;
static int get_or_create_user_conn(THD *thd, const char *user,
@ -255,6 +256,7 @@ end:
return return_val;
}
#endif /* !NO_EMBEDDED_ACCESS_CHECKS */
/*
@ -303,10 +305,7 @@ int check_user(THD *thd, enum enum_server_command command,
{
/* Send the error to the client */
net_send_error(thd);
if (thd->user_connect)
decrease_user_connections(thd->user_connect);
DBUG_RETURN(-1);
}
}
send_ok(thd);
DBUG_RETURN(0);
@ -495,10 +494,12 @@ extern "C" void free_user(struct user_conn *uc)
void init_max_user_conn(void)
{
#ifndef NO_EMBEDDED_ACCESS_CHECKS
(void) hash_init(&hash_user_connections,system_charset_info,max_connections,
0,0,
(hash_get_key) get_key_conn, (hash_free_key) free_user,
0);
#endif
}
@ -561,7 +562,6 @@ static int check_for_max_user_connections(THD *thd, USER_CONN *uc)
(void) pthread_mutex_unlock(&LOCK_user_conn);
DBUG_RETURN(error);
}
#endif /* NO_EMBEDDED_ACCESS_CHECKS */
/*
Decrease user connection count
@ -595,13 +595,18 @@ static void decrease_user_connections(USER_CONN *uc)
DBUG_VOID_RETURN;
}
#endif /* NO_EMBEDDED_ACCESS_CHECKS */
void free_max_user_conn(void)
{
#ifndef NO_EMBEDDED_ACCESS_CHECKS
hash_free(&hash_user_connections);
#endif /* NO_EMBEDDED_ACCESS_CHECKS */
}
/*
Mark all commands that somehow changes a table
This is used to check number of updates / hour
@ -1706,9 +1711,11 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
}
else
{
#ifndef NO_EMBEDDED_ACCESS_CHECKS
/* we've authenticated new user */
if (save_user_connect)
decrease_user_connections(save_user_connect);
#endif /* NO_EMBEDDED_ACCESS_CHECKS */
x_free((gptr) save_db);
x_free((gptr) save_security_ctx.user);
}