#At file:///home/nirbhay/Project/mysql/repo/bugs/mysql-5.5-bugteam-58139/ based on revid:jonathan.perkin@stripped
3170 Nirbhay Choubey 2010-12-07
Bug#58139 : default-auth option not recognized in MySQL standard
command line clients.
Command line tools like mysqladmin and mysqldump did not recognize
default-auth and plugin-dir options.
Support for these options was found missing in these command line
tools.
Fixed by adding support for the same.
@ client/mysqladmin.cc
Bug#58139 : default-auth option not recognized in MySQL standard
command line clients.
Introduced two new variables to hold values from default-auth and
plugin-dir options and further pushed them to client's st_mysql
instance.
@ client/mysqldump.c
Bug#58139 : default-auth option not recognized in MySQL standard
command line clients.
Introduced two new variables to hold values from default-auth and
plugin-dir options and further pushed them to client's st_mysql
instance.
@ mysql-test/r/plugin_auth.result
Added test case for Bug#58139.
@ mysql-test/t/plugin_auth.test
Added test case for Bug#58139.
modified:
client/mysqladmin.cc
client/mysqldump.c
mysql-test/r/plugin_auth.result
mysql-test/t/plugin_auth.test
=== modified file 'client/mysqladmin.cc'
--- a/client/mysqladmin.cc 2010-10-06 15:06:13 +0000
+++ b/client/mysqladmin.cc 2010-12-07 12:07:07 +0000
@@ -44,6 +44,7 @@ static uint tcp_port = 0, option_wait =
static uint opt_count_iterations= 0, my_end_arg;
static ulong opt_connect_timeout, opt_shutdown_timeout;
static char * unix_port=0;
+static char *opt_plugin_dir= 0, *opt_default_auth;
#ifdef HAVE_SMEM
static char *shared_memory_base_name=0;
@@ -206,6 +207,13 @@ static struct my_option my_long_options[
{"shutdown_timeout", OPT_SHUTDOWN_TIMEOUT, "", &opt_shutdown_timeout,
&opt_shutdown_timeout, 0, GET_ULONG, REQUIRED_ARG,
SHUTDOWN_DEF_TIMEOUT, 0, 3600*12, 0, 1, 0},
+ {"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
+ (uchar**) &opt_plugin_dir, (uchar**) &opt_plugin_dir, 0,
+ GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"default_auth", OPT_PLUGIN_DIR,
+ "Default authentication client-side plugin to use.",
+ (uchar**) &opt_default_auth, (uchar**) &opt_default_auth, 0,
+ GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
@@ -342,6 +350,12 @@ int main(int argc,char *argv[])
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, default_charset);
error_flags= (myf)(opt_nobeep ? 0 : ME_BELL);
+ if (opt_plugin_dir && *opt_plugin_dir)
+ mysql_options(&mysql, MYSQL_PLUGIN_DIR, opt_plugin_dir);
+
+ if (opt_default_auth && *opt_default_auth)
+ mysql_options(&mysql, MYSQL_DEFAULT_AUTH, opt_default_auth);
+
if (sql_connect(&mysql, option_wait))
{
/*
=== modified file 'client/mysqldump.c'
--- a/client/mysqldump.c 2010-10-06 15:06:13 +0000
+++ b/client/mysqldump.c 2010-12-07 12:07:07 +0000
@@ -137,6 +137,7 @@ FILE *stderror_file=0;
static char *shared_memory_base_name=0;
#endif
static uint opt_protocol= 0;
+static char *opt_plugin_dir= 0, *opt_default_auth;
/*
Dynamic_string wrapper functions. In this file use these
@@ -499,6 +500,13 @@ static struct my_option my_long_options[
&where, &where, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"xml", 'X', "Dump a database as well formed XML.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
+ (uchar**) &opt_plugin_dir, (uchar**) &opt_plugin_dir, 0,
+ GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"default_auth", OPT_PLUGIN_DIR,
+ "Default authentication client-side plugin to use.",
+ (uchar**) &opt_default_auth, (uchar**) &opt_default_auth, 0,
+ GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
@@ -1452,6 +1460,13 @@ static int connect_to_db(char *host, cha
mysql_options(&mysql_connection,MYSQL_SHARED_MEMORY_BASE_NAME,shared_memory_base_name);
#endif
mysql_options(&mysql_connection, MYSQL_SET_CHARSET_NAME, default_charset);
+
+ if (opt_plugin_dir && *opt_plugin_dir)
+ mysql_options(&mysql_connection, MYSQL_PLUGIN_DIR, opt_plugin_dir);
+
+ if (opt_default_auth && *opt_default_auth)
+ mysql_options(&mysql_connection, MYSQL_DEFAULT_AUTH, opt_default_auth);
+
if (!(mysql= mysql_real_connect(&mysql_connection,host,user,passwd,
NULL,opt_mysql_port,opt_mysql_unix_port,
0)))
=== modified file 'mysql-test/r/plugin_auth.result'
--- a/mysql-test/r/plugin_auth.result 2010-11-25 11:50:18 +0000
+++ b/mysql-test/r/plugin_auth.result 2010-12-07 12:07:07 +0000
@@ -318,4 +318,14 @@ Proxied_host
Proxied_user
With_grant 1
FLUSH PRIVILEGES;
+#
+# Bug#58139 : default-auth option not recognized in MySQL standardi
+# command line clients
+#
+# Executing 'mysql'
+1
+1
+# Executing 'mysqladmin'
+mysqld is alive
+# Executing 'mysqldump'
End of 5.5 tests
=== modified file 'mysql-test/t/plugin_auth.test'
--- a/mysql-test/t/plugin_auth.test 2010-11-25 11:50:18 +0000
+++ b/mysql-test/t/plugin_auth.test 2010-12-07 12:07:07 +0000
@@ -394,4 +394,18 @@ FLUSH PRIVILEGES;
FLUSH PRIVILEGES;
+--echo #
+--echo # Bug#58139 : default-auth option not recognized in MySQL standardi
+--echo # command line clients
+--echo #
+
+--echo # Executing 'mysql'
+--exec $MYSQL -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT --default-auth=auth_test_plugin $PLUGIN_AUTH_OPT -e 'SELECT 1'
+
+--echo # Executing 'mysqladmin'
+--exec $MYSQLADMIN -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT --default-auth=auth_test_plugin $PLUGIN_AUTH_OPT ping
+
+--echo # Executing 'mysqldump'
+--exec $MYSQL_DUMP -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT --compact --default-auth=auth_test_plugin $PLUGIN_AUTH_OPT test
+
--echo End of 5.5 tests
Attachment: [text/bzr-bundle]
| Thread |
|---|
| • bzr commit into mysql-5.5-bugteam branch (nirbhay.choubey:3170)Bug#58139 | Nirbhay Choubey | 7 Dec |