diff options
author | unknown <sasha@mysql.sashanet.com> | 2001-08-15 15:57:47 -0600 |
---|---|---|
committer | unknown <sasha@mysql.sashanet.com> | 2001-08-15 15:57:47 -0600 |
commit | abb2aaa2792183168b11479a9b99d5d700667e1e (patch) | |
tree | a77300d361c4ea8556793f6c691e3b2812accf0c /sql/mini_client.cc | |
parent | aaf71625ea95f8163eb66a095ed00ea1953e3e7e (diff) | |
parent | 2b8614210d1db003a6827f301dad0321b1a7478e (diff) | |
download | mariadb-git-abb2aaa2792183168b11479a9b99d5d700667e1e.tar.gz |
merged replication fixes from 3.23
BitKeeper/etc/logging_ok:
auto-union
Docs/manual.texi:
merged
sql/mini_client.cc:
merged
sql/mysqld.cc:
merged
sql/sql_repl.cc:
merged
Diffstat (limited to 'sql/mini_client.cc')
-rw-r--r-- | sql/mini_client.cc | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/sql/mini_client.cc b/sql/mini_client.cc index 8966b303000..261b1d03f78 100644 --- a/sql/mini_client.cc +++ b/sql/mini_client.cc @@ -40,6 +40,8 @@ #include "mysqld_error.h" #include "errmsg.h" +extern ulong net_read_timeout; + extern "C" { // Because of SCO 3.2V4.2 #include <sys/stat.h> #include <signal.h> @@ -63,6 +65,7 @@ extern "C" { // Because of SCO 3.2V4.2 #endif #if defined(THREAD) && !defined(__WIN__) #include <my_pthread.h> /* because of signal() */ +#include <thr_alarm.h> #endif #ifndef INADDR_NONE #define INADDR_NONE -1 @@ -493,18 +496,25 @@ mc_mysql_connect(MYSQL *mysql,const char *host, const char *user, struct sockaddr_in sock_addr; uint pkt_length; NET *net= &mysql->net; + thr_alarm_t alarmed; +#if !defined(__WIN__) + ALARM alarm_buff; +#endif + #ifdef __WIN__ HANDLE hPipe=INVALID_HANDLE_VALUE; #endif #ifdef HAVE_SYS_UN_H struct sockaddr_un UNIXaddr; #endif - DBUG_ENTER("mysql_real_connect"); + DBUG_ENTER("mc_mysql_connect"); DBUG_PRINT("enter",("host: %s db: %s user: %s", host ? host : "(Null)", db ? db : "(Null)", user ? user : "(Null)")); + thr_alarm_init(&alarmed); + thr_alarm(&alarmed,(uint) net_read_timeout,&alarm_buff); bzero((char*) &mysql->options,sizeof(mysql->options)); net->vio = 0; /* If something goes wrong */ @@ -639,8 +649,12 @@ mc_mysql_connect(MYSQL *mysql,const char *host, const char *user, DBUG_PRINT("error",("Got error %d on connect to '%s'",ERRNO,host)); net->last_errno= CR_CONN_HOST_ERROR; sprintf(net->last_error ,ER(CR_CONN_HOST_ERROR), host, ERRNO); + if (thr_alarm_in_use(&alarmed)) + thr_end_alarm(&alarmed); goto error; } + if (thr_alarm_in_use(&alarmed)) + thr_end_alarm(&alarmed); } if (!net->vio || my_net_init(net, net->vio)) |