mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
fix for #1210
include/errmsg.h: Error code added libmysql/errmsg.c: Error message added libmysqld/lib_sql.cc: static inited variable changed to global server_inited libmysqld/libmysqld.c: check for mysql_server_init execution added
This commit is contained in:
parent
08e2747587
commit
d0f9e73a43
4 changed files with 27 additions and 6 deletions
|
@ -86,3 +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
|
||||
|
|
|
@ -71,7 +71,8 @@ const char *client_errors[]=
|
|||
"Can't open shared memory. Server abandoded and don't sent the answer event (%lu)",
|
||||
"Can't open shared memory. Can't send the request event to server (%lu)",
|
||||
"Wrong or unknown protocol",
|
||||
"Invalid connection handle"
|
||||
"Invalid connection handle",
|
||||
"mysql_server_init wasn't called"
|
||||
};
|
||||
|
||||
/* Start of code added by Roberto M. Serqueira - martinsc@uol.com.br - 05.24.2001 */
|
||||
|
@ -126,7 +127,8 @@ const char *client_errors[]=
|
|||
"Can't open shared memory. Server abandoded and don't sent the answer event (%lu)",
|
||||
"Can't open shared memory. Can't send the request event to server (%lu)",
|
||||
"Wrong or unknown protocol",
|
||||
"Invalid connection handle"
|
||||
"Invalid connection handle",
|
||||
"mysql_server_init wasn't called"
|
||||
};
|
||||
|
||||
#else /* ENGLISH */
|
||||
|
@ -179,7 +181,8 @@ const char *client_errors[]=
|
|||
"Can't open shared memory. Server abandoded and don't sent the answer event (%lu)",
|
||||
"Can't open shared memory. Can't send the request event to server (%lu)",
|
||||
"Wrong or unknown protocol",
|
||||
"Invalid connection handle"
|
||||
"Invalid connection handle",
|
||||
"mysql_server_init wasn't called"
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -26,7 +26,8 @@
|
|||
static int fake_argc= 1;
|
||||
static char *fake_argv[]= {(char *)"", 0};
|
||||
static const char *fake_groups[] = { "server", "embedded", 0 };
|
||||
static char inited, org_my_init_done;
|
||||
static char org_my_init_done;
|
||||
char server_inited;
|
||||
|
||||
#if defined (__WIN__)
|
||||
#include "../sql/mysqld.cpp"
|
||||
|
@ -181,9 +182,9 @@ int STDCALL mysql_server_init(int argc, char **argv, char **groups)
|
|||
|
||||
|
||||
/* Only call MY_INIT() if it hasn't been called before */
|
||||
if (!inited)
|
||||
if (!server_inited)
|
||||
{
|
||||
inited=1;
|
||||
server_inited=1;
|
||||
org_my_init_done=my_init_done;
|
||||
}
|
||||
if (!org_my_init_done)
|
||||
|
|
|
@ -79,6 +79,8 @@ struct passwd *getpwuid(uid_t);
|
|||
char* getlogin(void);
|
||||
#endif
|
||||
|
||||
extern char server_inited;
|
||||
|
||||
#ifdef __WIN__
|
||||
static my_bool is_NT(void)
|
||||
{
|
||||
|
@ -210,6 +212,20 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
|
|||
db ? db : "(Null)",
|
||||
user ? user : "(Null)"));
|
||||
|
||||
#ifdef EMBEDDED_LIBRARY
|
||||
/*
|
||||
Here we check that mysql_server_init was called before.
|
||||
Actually we can perform the test for client (not embedded) library as well.
|
||||
But i'm afraid some old applications will be broken then.
|
||||
*/
|
||||
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 /*EMBEDDED_LIBRARY*/
|
||||
|
||||
if (mysql->options.methods_to_use == MYSQL_OPT_USE_REMOTE_CONNECTION)
|
||||
cli_mysql_real_connect(mysql, host, user,
|
||||
passwd, db, port, unix_socket, client_flag);
|
||||
|
|
Loading…
Reference in a new issue