diff options
-rw-r--r-- | include/errmsg.h | 3 | ||||
-rw-r--r-- | include/mysql.h | 3 | ||||
-rw-r--r-- | libmysql/client_settings.h | 11 | ||||
-rw-r--r-- | libmysql/errmsg.c | 3 | ||||
-rw-r--r-- | libmysql/libmysql.c | 17 | ||||
-rw-r--r-- | libmysqld/embedded_priv.h | 1 | ||||
-rw-r--r-- | libmysqld/lib_sql.cc | 22 | ||||
-rw-r--r-- | libmysqld/libmysqld.c | 14 | ||||
-rw-r--r-- | sql-common/client.c | 3 | ||||
-rw-r--r-- | sql/client_settings.h | 2 | ||||
-rw-r--r-- | sql/net_serv.cc | 6 | ||||
-rw-r--r-- | sql/sql_client.cc | 5 |
12 files changed, 33 insertions, 57 deletions
diff --git a/include/errmsg.h b/include/errmsg.h index 24326b1efef..8f3ddfa9796 100644 --- a/include/errmsg.h +++ b/include/errmsg.h @@ -86,5 +86,4 @@ extern const char *client_errors[]; /* Error messages */ #define CR_SHARED_MEMORY_CONNECT_SET_ERROR 2045 #define CR_CONN_UNKNOW_PROTOCOL 2046 #define CR_INVALID_CONN_HANDLE 2047 -#define CR_MYSQL_SERVER_INIT_MISSED 2048 -#define CR_SECURE_AUTH 2049 +#define CR_SECURE_AUTH 2048 diff --git a/include/mysql.h b/include/mysql.h index fd0330b35da..d1b467f9649 100644 --- a/include/mysql.h +++ b/include/mysql.h @@ -638,9 +638,6 @@ int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB); (*(mysql)->methods->advanced_command)(mysql, command, \ NullS, 0, arg, length, skip_check) unsigned long net_safe_read(MYSQL* mysql); -void mysql_once_init(void); - -extern my_bool server_inited; #ifdef __NETWARE__ #pragma pack(pop) /* restore alignment */ diff --git a/libmysql/client_settings.h b/libmysql/client_settings.h index 3798eaa3544..b1a85f567f9 100644 --- a/libmysql/client_settings.h +++ b/libmysql/client_settings.h @@ -58,3 +58,14 @@ int cli_stmt_execute(MYSQL_STMT *stmt); MYSQL_DATA * cli_read_binary_rows(MYSQL_STMT *stmt); int cli_unbuffered_fetch(MYSQL *mysql, char **row); const char * cli_read_statistic(MYSQL *mysql); + +#ifdef EMBEDDED_LIBRARY +int init_embedded_server(int argc, char **argv, char **groups); +void end_embedded_server(); + +#else +/* Prevent warnings of unused parameters */ +#define init_embedded_server(a,b,c) ((void)a, (void)b, (void)c, 0) +#define end_embedded_server() +#endif /*EMBEDDED_LIBRARY*/ + diff --git a/libmysql/errmsg.c b/libmysql/errmsg.c index 4dfcfe6a1d3..569267ddb37 100644 --- a/libmysql/errmsg.c +++ b/libmysql/errmsg.c @@ -72,7 +72,6 @@ const char *client_errors[]= "Can't open shared memory. Can't send the request event to server (%lu)", "Wrong or unknown protocol", "Invalid connection handle", - "mysql_server_init wasn't called", "Connection using old (pre 4.1.1) authentication protocol refused (client option 'secure_auth' enabled)" }; @@ -129,7 +128,6 @@ const char *client_errors[]= "Can't open shared memory. Can't send the request event to server (%lu)", "Wrong or unknown protocol", "Invalid connection handle", - "mysql_server_init wasn't called", "Connection using old (pre 4.1.1) authentication protocol refused (client option 'secure_auth' enabled)" }; @@ -184,7 +182,6 @@ const char *client_errors[]= "Can't open shared memory. Can't send the request event to server (%lu)", "Wrong or unknown protocol", "Invalid connection handle", - "mysql_server_init wasn't called", "Connection using old (pre 4.1.1) authentication protocol refused (client option 'secure_auth' enabled)" }; #endif diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index a4b300a0448..9f2ae280cfc 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -94,8 +94,9 @@ my_bool stmt_close(MYSQL_STMT *stmt, my_bool skip_list); static my_bool mysql_client_init= 0; static my_bool org_my_init_done= 0; -void mysql_once_init(void) +int STDCALL mysql_server_init(int argc, char **argv, char **groups) { + int result= 0; if (!mysql_client_init) { mysql_client_init=1; @@ -131,24 +132,18 @@ void mysql_once_init(void) #if defined(SIGPIPE) && !defined(__WIN__) (void) signal(SIGPIPE, SIG_IGN); #endif + result= init_embedded_server(argc, argv, groups); } #ifdef THREAD else my_thread_init(); /* Init if new thread */ #endif -} - -#ifndef EMBEDDED_LIBRARY -int STDCALL mysql_server_init(int argc __attribute__((unused)), - char **argv __attribute__((unused)), - char **groups __attribute__((unused))) -{ - mysql_once_init(); - return 0; + return result; } void STDCALL mysql_server_end() { + end_embedded_server(); /* If library called my_init(), free memory allocated by it */ if (!org_my_init_done) { @@ -163,8 +158,6 @@ void STDCALL mysql_server_end() mysql_client_init= org_my_init_done= 0; } -#endif /*EMBEDDED_LIBRARY*/ - my_bool STDCALL mysql_thread_init() { #ifdef THREAD diff --git a/libmysqld/embedded_priv.h b/libmysqld/embedded_priv.h index 833cc1b1f80..673531c0c14 100644 --- a/libmysqld/embedded_priv.h +++ b/libmysqld/embedded_priv.h @@ -28,5 +28,4 @@ extern void init_embedded_mysql(MYSQL *mysql, int client_flag, char *db); extern void *create_embedded_thd(int client_flag, char *db); extern MYSQL_METHODS embedded_methods; void free_old_query(MYSQL *mysql); -extern my_bool server_inited; C_MODE_END diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 2fd6927854f..864adddb9c4 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -42,9 +42,6 @@ C_MODE_START #include "errmsg.h" #include <sql_common.h> -static my_bool org_my_init_done; -my_bool server_inited; - static my_bool emb_advanced_command(MYSQL *mysql, enum enum_server_command command, const char *header, ulong header_length, @@ -305,7 +302,7 @@ extern "C" char ** copy_arguments_ptr= 0; -int STDCALL mysql_server_init(int argc, char **argv, char **groups) +int init_embedded_server(int argc, char **argv, char **groups) { char glob_hostname[FN_REFLEN]; @@ -329,17 +326,7 @@ int STDCALL mysql_server_init(int argc, char **argv, char **groups) if (!groups) groups= (char**) fake_groups; - - /* Only call MY_INIT() if it hasn't been called before */ - if (!server_inited) - { - server_inited=1; - org_my_init_done=my_init_done; - } - if (!org_my_init_done) - { - MY_INIT((char *)"mysql_embedded"); // init my_sys library & pthreads - } + my_progname= (char *)"mysql_embedded"; if (init_common_variables("my", *argcp, *argvp, (const char **)groups)) { @@ -438,14 +425,11 @@ int STDCALL mysql_server_init(int argc, char **argv, char **groups) return 0; } -void STDCALL mysql_server_end() +void end_embedded_server() { my_free((char*) copy_arguments_ptr, MYF(MY_ALLOW_ZERO_PTR)); copy_arguments_ptr=0; clean_up(0); - /* If library called my_init(), free memory allocated by it */ - if (!org_my_init_done) - my_end(0); } } /* extern "C" */ diff --git a/libmysqld/libmysqld.c b/libmysqld/libmysqld.c index 59c18368279..f96c06ff0f6 100644 --- a/libmysqld/libmysqld.c +++ b/libmysqld/libmysqld.c @@ -163,20 +163,12 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, db ? db : "(Null)", user ? user : "(Null)")); -#if defined(EMBEDDED_LIBRARY) || !defined(DBUG_OFF) - if (!server_inited) - { - mysql->net.last_errno=CR_MYSQL_SERVER_INIT_MISSED; - strmov(mysql->net.last_error,ER(mysql->net.last_errno)); - goto error; - } -#endif - if (mysql->options.methods_to_use == MYSQL_OPT_USE_REMOTE_CONNECTION || (mysql->options.methods_to_use == MYSQL_OPT_GUESS_CONNECTION && host && strcmp(host,LOCAL_HOST))) - cli_mysql_real_connect(mysql, host, user, - passwd, db, port, unix_socket, client_flag); + DBUG_RETURN(cli_mysql_real_connect(mysql, host, user, + passwd, db, port, + unix_socket, client_flag)); mysql->methods= &embedded_methods; diff --git a/sql-common/client.c b/sql-common/client.c index 374cbb29112..73e90d08b51 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -1310,7 +1310,8 @@ read_one_row(MYSQL *mysql,uint fields,MYSQL_ROW row, ulong *lengths) MYSQL * STDCALL mysql_init(MYSQL *mysql) { - mysql_once_init(); + if (mysql_server_init(0, NULL, NULL)) + return 0; if (!mysql) { if (!(mysql=(MYSQL*) my_malloc(sizeof(*mysql),MYF(MY_WME | MY_ZEROFILL)))) diff --git a/sql/client_settings.h b/sql/client_settings.h index b357e52ec9d..75500574c99 100644 --- a/sql/client_settings.h +++ b/sql/client_settings.h @@ -32,3 +32,5 @@ #undef HAVE_SMEM #undef _CUSTOMCONFIG_ +#define mysql_server_init(a,b,c) FALSE + diff --git a/sql/net_serv.cc b/sql/net_serv.cc index 7944a528b83..a0f7a779894 100644 --- a/sql/net_serv.cc +++ b/sql/net_serv.cc @@ -54,6 +54,12 @@ #ifdef EMBEDDED_LIBRARY +#undef MYSQL_SERVER + +#ifndef MYSQL_CLIENT +#define MYSQL_CLIENT +#endif + #undef net_flush extern "C" { diff --git a/sql/sql_client.cc b/sql/sql_client.cc index 1ae9a23a924..9f3063cde2d 100644 --- a/sql/sql_client.cc +++ b/sql/sql_client.cc @@ -38,8 +38,3 @@ void my_net_local_init(NET *net) } } -extern "C" { -void mysql_once_init(void) -{ -} -} |