diff options
author | Sergei Golubchik <serg@mariadb.org> | 2016-02-24 10:27:23 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2016-02-24 10:27:23 +0100 |
commit | d044507dc53731e604f3137ed7423c6b94e83aba (patch) | |
tree | d55e8fb2d4a985c308485cd5b71eadcda5d6f5e3 /client | |
parent | ff2d92b17d600f83b9ad4baaa96ede7c9c08801a (diff) | |
parent | 5a4ec8e60b10c176af1dd84157e1d15cf905637b (diff) | |
download | mariadb-git-d044507dc53731e604f3137ed7423c6b94e83aba.tar.gz |
Merge branch 'bb-10.1-serg' into 10.1
10.0 merge
10.0-galera merge
connect/10.1 merge
Diffstat (limited to 'client')
-rw-r--r-- | client/mysql.cc | 77 | ||||
-rw-r--r-- | client/mysql_upgrade.c | 4 |
2 files changed, 43 insertions, 38 deletions
diff --git a/client/mysql.cc b/client/mysql.cc index 29e39b6adcb..a712ed7b1f2 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -1344,6 +1344,44 @@ sig_handler mysql_end(int sig) exit(status.exit_status); } +/* + set connection-specific options and call mysql_real_connect +*/ +static bool do_connect(MYSQL *mysql, const char *host, const char *user, + const char *password, const char *database, ulong flags) +{ + if (opt_secure_auth) + mysql_options(mysql, MYSQL_SECURE_AUTH, (char *) &opt_secure_auth); +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) + if (opt_use_ssl) + { + mysql_ssl_set(mysql, opt_ssl_key, opt_ssl_cert, opt_ssl_ca, + opt_ssl_capath, opt_ssl_cipher); + mysql_options(mysql, MYSQL_OPT_SSL_CRL, opt_ssl_crl); + mysql_options(mysql, MYSQL_OPT_SSL_CRLPATH, opt_ssl_crlpath); + } + mysql_options(mysql,MYSQL_OPT_SSL_VERIFY_SERVER_CERT, + (char*)&opt_ssl_verify_server_cert); +#endif + if (opt_protocol) + mysql_options(mysql,MYSQL_OPT_PROTOCOL,(char*)&opt_protocol); +#ifdef HAVE_SMEM + if (shared_memory_base_name) + mysql_options(mysql,MYSQL_SHARED_MEMORY_BASE_NAME,shared_memory_base_name); +#endif + 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); + + mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_RESET, 0); + mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD, + "program_name", "mysql"); + return mysql_real_connect(mysql, host, user, password, database, + opt_mysql_port, opt_mysql_unix_port, flags); +} + /* This function handles sigint calls @@ -1365,11 +1403,7 @@ sig_handler handle_sigint(int sig) } kill_mysql= mysql_init(kill_mysql); - mysql_options(kill_mysql, MYSQL_OPT_CONNECT_ATTR_RESET, 0); - mysql_options4(kill_mysql, MYSQL_OPT_CONNECT_ATTR_ADD, - "program_name", "mysql"); - if (!mysql_real_connect(kill_mysql,current_host, current_user, opt_password, - "", opt_mysql_port, opt_mysql_unix_port,0)) + if (!do_connect(kill_mysql,current_host, current_user, opt_password, "", 0)) { tee_fprintf(stdout, "Ctrl-C -- sorry, cannot connect to server to kill query, giving up ...\n"); goto err; @@ -4576,27 +4610,8 @@ sql_real_connect(char *host,char *database,char *user,char *password, } if (opt_compress) mysql_options(&mysql,MYSQL_OPT_COMPRESS,NullS); - if (opt_secure_auth) - mysql_options(&mysql, MYSQL_SECURE_AUTH, (char *) &opt_secure_auth); if (using_opt_local_infile) mysql_options(&mysql,MYSQL_OPT_LOCAL_INFILE, (char*) &opt_local_infile); -#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) - if (opt_use_ssl) - { - mysql_ssl_set(&mysql, opt_ssl_key, opt_ssl_cert, opt_ssl_ca, - opt_ssl_capath, opt_ssl_cipher); - mysql_options(&mysql, MYSQL_OPT_SSL_CRL, opt_ssl_crl); - mysql_options(&mysql, MYSQL_OPT_SSL_CRLPATH, opt_ssl_crlpath); - } - mysql_options(&mysql,MYSQL_OPT_SSL_VERIFY_SERVER_CERT, - (char*)&opt_ssl_verify_server_cert); -#endif - if (opt_protocol) - mysql_options(&mysql,MYSQL_OPT_PROTOCOL,(char*)&opt_protocol); -#ifdef HAVE_SMEM - if (shared_memory_base_name) - mysql_options(&mysql,MYSQL_SHARED_MEMORY_BASE_NAME,shared_memory_base_name); -#endif if (safe_updates) { char init_command[100]; @@ -4608,18 +4623,8 @@ sql_real_connect(char *host,char *database,char *user,char *password, mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, default_charset); - 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); - - mysql_options(&mysql, MYSQL_OPT_CONNECT_ATTR_RESET, 0); - mysql_options4(&mysql, MYSQL_OPT_CONNECT_ATTR_ADD, - "program_name", "mysql"); - if (!mysql_real_connect(&mysql, host, user, password, - database, opt_mysql_port, opt_mysql_unix_port, - connect_flag | CLIENT_MULTI_STATEMENTS)) + if (!do_connect(&mysql, host, user, password, database, + connect_flag | CLIENT_MULTI_STATEMENTS)) { if (!silent || (mysql_errno(&mysql) != CR_CONN_HOST_ERROR && diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c index 1062c6bd45d..2e6e8030f34 100644 --- a/client/mysql_upgrade.c +++ b/client/mysql_upgrade.c @@ -184,7 +184,8 @@ static const char *load_default_groups[]= static void free_used_memory(void) { /* Free memory allocated by 'load_defaults' */ - free_defaults(defaults_argv); + if (defaults_argv) + free_defaults(defaults_argv); dynstr_free(&ds_args); dynstr_free(&conn_args); @@ -1110,7 +1111,6 @@ int main(int argc, char **argv) if (opt_systables_only && !opt_silent) printf("The --upgrade-system-tables option was used, user tables won't be touched.\n"); - /* Read the mysql_upgrade_info file to check if mysql_upgrade already has been run for this installation of MySQL |