99
99
#include "client_settings.h"
100
100
#include <sql_common.h>
101
101
102
- const char * unknown_sqlstate = "000000" ;
102
+ const char * unknown_sqlstate = "HY0000" ;
103
+ const char * not_error_sqlstate = "00000" ;
103
104
104
105
#ifdef MYSQL_CLIENT
105
106
extern my_bool stmt_close (MYSQL_STMT * stmt ,my_bool skip_list );
@@ -339,10 +340,10 @@ HANDLE create_shared_memory(MYSQL *mysql,NET *net, uint connect_timeout)
339
340
340
341
/*
341
342
The name of event and file-mapping events create agree next rule:
342
- shared_memory_base_name+unique_part
343
+ shared_memory_base_name+unique_part
343
344
Where:
344
- shared_memory_base_name is unique value for each server
345
- unique_part is uniquel value for each object (events and file-mapping)
345
+ shared_memory_base_name is unique value for each server
346
+ unique_part is uniquel value for each object (events and file-mapping)
346
347
*/
347
348
suffix_pos = strxmov (tmp ,shared_memory_base_name ,"_" ,NullS );
348
349
strmov (suffix_pos , "CONNECT_REQUEST" );
@@ -369,36 +370,34 @@ HANDLE create_shared_memory(MYSQL *mysql,NET *net, uint connect_timeout)
369
370
error_allow = CR_SHARED_MEMORY_CONNECT_MAP_ERROR ;
370
371
goto err ;
371
372
}
372
- /*
373
- Send to server request of connection
374
- */
373
+
374
+ /* Send to server request of connection */
375
375
if (!SetEvent (event_connect_request ))
376
376
{
377
377
error_allow = CR_SHARED_MEMORY_CONNECT_SET_ERROR ;
378
378
goto err ;
379
379
}
380
- /*
381
- Wait of answer from server
382
- */
380
+
381
+ /* Wait of answer from server */
383
382
if (WaitForSingleObject (event_connect_answer ,connect_timeout * 1000 ) !=
384
383
WAIT_OBJECT_0 )
385
384
{
386
385
error_allow = CR_SHARED_MEMORY_CONNECT_ABANDODED_ERROR ;
387
386
goto err ;
388
387
}
389
- /*
390
- Get number of connection
391
- */
388
+
389
+ /* Get number of connection */
392
390
connect_number = uint4korr (handle_connect_map );/*WAX2*/
393
391
p = int2str (connect_number , connect_number_char , 10 );
394
392
395
393
/*
396
394
The name of event and file-mapping events create agree next rule:
397
395
shared_memory_base_name+unique_part+number_of_connection
396
+
398
397
Where:
399
- shared_memory_base_name is uniquel value for each server
400
- unique_part is uniquel value for each object (events and file-mapping)
401
- number_of_connection is number of connection between server and client
398
+ shared_memory_base_name is uniquel value for each server
399
+ unique_part is uniquel value for each object (events and file-mapping)
400
+ number_of_connection is number of connection between server and client
402
401
*/
403
402
suffix_pos = strxmov (tmp ,shared_memory_base_name ,"_" ,connect_number_char ,
404
403
"_" ,NullS );
@@ -506,7 +505,7 @@ net_safe_read(MYSQL *mysql)
506
505
{
507
506
NET * net = & mysql -> net ;
508
507
ulong len = 0 ;
509
- init_sigpipe_variables
508
+ init_sigpipe_variables ;
510
509
511
510
/* Don't give sigpipe errors if the client doesn't want them */
512
511
set_sigpipe (mysql );
@@ -571,7 +570,7 @@ advanced_command(MYSQL *mysql, enum enum_server_command command,
571
570
{
572
571
NET * net = & mysql -> net ;
573
572
my_bool result = 1 ;
574
- init_sigpipe_variables
573
+ init_sigpipe_variables ;
575
574
576
575
/* Don't give sigpipe errors if the client doesn't want them */
577
576
set_sigpipe (mysql );
@@ -589,8 +588,8 @@ advanced_command(MYSQL *mysql, enum enum_server_command command,
589
588
}
590
589
591
590
net -> last_error [0 ]= 0 ;
592
- net -> last_errno = 0 ;
593
- strmov (net -> sqlstate , unknown_sqlstate );
591
+ net -> last_errno = 0 ;
592
+ strmov (net -> sqlstate , not_error_sqlstate );
594
593
mysql -> net .report_error = 0 ;
595
594
mysql -> info = 0 ;
596
595
mysql -> affected_rows = ~(my_ulonglong ) 0 ;
@@ -624,7 +623,7 @@ advanced_command(MYSQL *mysql, enum enum_server_command command,
624
623
if (!skip_check )
625
624
result = ((mysql -> packet_length = net_safe_read (mysql )) == packet_error ?
626
625
1 : 0 );
627
- end :
626
+ end :
628
627
reset_sigpipe (mysql );
629
628
return result ;
630
629
}
@@ -665,7 +664,7 @@ void end_server(MYSQL *mysql)
665
664
DBUG_ENTER ("end_server" );
666
665
if (mysql -> net .vio != 0 )
667
666
{
668
- init_sigpipe_variables
667
+ init_sigpipe_variables ;
669
668
DBUG_PRINT ("info" ,("Net: %s" , vio_description (mysql -> net .vio )));
670
669
set_sigpipe (mysql );
671
670
vio_delete (mysql -> net .vio );
@@ -1457,7 +1456,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
1457
1456
#ifdef HAVE_SYS_UN_H
1458
1457
struct sockaddr_un UNIXaddr ;
1459
1458
#endif
1460
- init_sigpipe_variables
1459
+ init_sigpipe_variables ;
1461
1460
DBUG_ENTER ("mysql_real_connect" );
1462
1461
LINT_INIT (host_info );
1463
1462
@@ -1561,7 +1560,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
1561
1560
net -> vio = vio_new (sock , VIO_TYPE_SOCKET , TRUE);
1562
1561
bzero ((char * ) & UNIXaddr ,sizeof (UNIXaddr ));
1563
1562
UNIXaddr .sun_family = AF_UNIX ;
1564
- strmov (UNIXaddr .sun_path , unix_socket );
1563
+ strmake (UNIXaddr .sun_path , unix_socket , sizeof ( UNIXaddr . sun_path ) - 1 );
1565
1564
if (my_connect (sock ,(struct sockaddr * ) & UNIXaddr , sizeof (UNIXaddr ),
1566
1565
mysql -> options .connect_timeout ))
1567
1566
{
@@ -2090,15 +2089,16 @@ static void mysql_fix_pointers(MYSQL* mysql, MYSQL* old_mysql)
2090
2089
#endif /*MYSQL_CLIENT*/
2091
2090
}
2092
2091
2092
+
2093
2093
my_bool mysql_reconnect (MYSQL * mysql )
2094
2094
{
2095
2095
MYSQL tmp_mysql ;
2096
2096
DBUG_ENTER ("mysql_reconnect" );
2097
2097
2098
- if (!mysql -> reconnect
2099
- || (mysql -> server_status & SERVER_STATUS_IN_TRANS ) || !mysql -> host_info )
2098
+ if (!mysql -> reconnect ||
2099
+ (mysql -> server_status & SERVER_STATUS_IN_TRANS ) || !mysql -> host_info )
2100
2100
{
2101
- /* Allow reconnect next time */
2101
+ /* Allow reconnect next time */
2102
2102
mysql -> server_status &= ~SERVER_STATUS_IN_TRANS ;
2103
2103
strmov (mysql -> net .sqlstate , unknown_sqlstate );
2104
2104
mysql -> net .last_errno = CR_SERVER_GONE_ERROR ;
0 commit comments