diff options
-rw-r--r-- | libmysql/libmysql.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 13244a70fcc..179a942828c 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -460,19 +460,17 @@ simple_command(MYSQL *mysql,enum enum_server_command command, const char *arg, { net->last_errno=CR_NET_PACKET_TOO_LARGE; strmov(net->last_error,ER(net->last_errno)); - return(packet_error); + goto end; } - else + end_server(mysql); + if (mysql_reconnect(mysql)) + goto end; + if (net_write_command(net,(uchar) command,arg, + length ? length : (ulong) strlen(arg))) { - end_server(mysql); - if (mysql_reconnect(mysql) || - net_write_command(net,(uchar) command,arg, - length ? length : (ulong) strlen(arg))) - { - net->last_errno=CR_SERVER_GONE_ERROR; - strmov(net->last_error,ER(net->last_errno)); - goto end; - } + net->last_errno= CR_SERVER_GONE_ERROR; + strmov(net->last_error,ER(net->last_errno)); + goto end; } } result=0; |