Merge pull request #26 from chipturner/master

Extend read_timeout support to also include write_timeouts
This commit is contained in:
Andy Dustman
2013-11-21 12:00:56 -08:00

View File

@ -121,7 +121,7 @@ static int _mysql_server_init_done = 0;
/* According to https://dev.mysql.com/doc/refman/5.1/en/mysql-options.html /* According to https://dev.mysql.com/doc/refman/5.1/en/mysql-options.html
The MYSQL_OPT_READ_TIMEOUT apear in the version 5.1.12 */ The MYSQL_OPT_READ_TIMEOUT apear in the version 5.1.12 */
#if MYSQL_VERSION_ID > 50112 #if MYSQL_VERSION_ID > 50112
#define HAVE_MYSQL_OPT_READ_TIMEOUT 1 #define HAVE_MYSQL_OPT_TIMEOUTS 1
#endif #endif
PyObject * PyObject *
@ -566,13 +566,15 @@ _mysql_ConnectionObject_Initialize(
"read_default_file", "read_default_group", "read_default_file", "read_default_group",
"client_flag", "ssl", "client_flag", "ssl",
"local_infile", "local_infile",
#ifdef HAVE_MYSQL_OPT_READ_TIMEOUT #ifdef HAVE_MYSQL_OPT_TIMEOUTS
"read_timeout", "read_timeout",
"write_timeout",
#endif #endif
NULL } ; NULL } ;
int connect_timeout = 0; int connect_timeout = 0;
#ifdef HAVE_MYSQL_OPT_READ_TIMEOUT #ifdef HAVE_MYSQL_OPT_TIMEOUTS
int read_timeout = 0; int read_timeout = 0;
int write_timeout = 0;
#endif #endif
int compress = -1, named_pipe = -1, local_infile = -1; int compress = -1, named_pipe = -1, local_infile = -1;
char *init_command=NULL, char *init_command=NULL,
@ -584,8 +586,8 @@ _mysql_ConnectionObject_Initialize(
check_server_init(-1); check_server_init(-1);
if (!PyArg_ParseTupleAndKeywords(args, kwargs, if (!PyArg_ParseTupleAndKeywords(args, kwargs,
#ifdef HAVE_MYSQL_OPT_READ_TIMEOUT #ifdef HAVE_MYSQL_OPT_TIMEOUTS
"|ssssisOiiisssiOii:connect", "|ssssisOiiisssiOiii:connect",
#else #else
"|ssssisOiiisssiOi:connect", "|ssssisOiiisssiOi:connect",
#endif #endif
@ -598,8 +600,9 @@ _mysql_ConnectionObject_Initialize(
&read_default_group, &read_default_group,
&client_flag, &ssl, &client_flag, &ssl,
&local_infile &local_infile
#ifdef HAVE_MYSQL_OPT_READ_TIMEOUT #ifdef HAVE_MYSQL_OPT_TIMEOUTS
, &read_timeout , &read_timeout
, &write_timeout
#endif #endif
)) ))
return -1; return -1;
@ -636,12 +639,17 @@ _mysql_ConnectionObject_Initialize(
mysql_options(&(self->connection), MYSQL_OPT_CONNECT_TIMEOUT, mysql_options(&(self->connection), MYSQL_OPT_CONNECT_TIMEOUT,
(char *)&timeout); (char *)&timeout);
} }
#ifdef HAVE_MYSQL_OPT_READ_TIMEOUT #ifdef HAVE_MYSQL_OPT_TIMEOUTS
if (read_timeout) { if (read_timeout) {
unsigned int timeout = read_timeout; unsigned int timeout = read_timeout;
mysql_options(&(self->connection), MYSQL_OPT_READ_TIMEOUT, mysql_options(&(self->connection), MYSQL_OPT_READ_TIMEOUT,
(char *)&timeout); (char *)&timeout);
} }
if (write_timeout) {
unsigned int timeout = write_timeout;
mysql_options(&(self->connection), MYSQL_OPT_WRITE_TIMEOUT,
(char *)&timeout);
}
#endif #endif
if (compress != -1) { if (compress != -1) {
mysql_options(&(self->connection), MYSQL_OPT_COMPRESS, 0); mysql_options(&(self->connection), MYSQL_OPT_COMPRESS, 0);