Merge from mysql-5.0-bugteam.
This commit is contained in:
commit
a141a6375a
@ -477,6 +477,9 @@ HANDLE create_shared_memory(MYSQL *mysql,NET *net, uint connect_timeout)
|
||||
DWORD error_code = 0;
|
||||
DWORD event_access_rights= SYNCHRONIZE | EVENT_MODIFY_STATE;
|
||||
char *shared_memory_base_name = mysql->options.shared_memory_base_name;
|
||||
static const char *name_prefixes[] = {"","Global\\"};
|
||||
const char *prefix;
|
||||
int i;
|
||||
|
||||
/*
|
||||
get enough space base-name + '_' + longest suffix we might ever send
|
||||
@ -491,9 +494,18 @@ HANDLE create_shared_memory(MYSQL *mysql,NET *net, uint connect_timeout)
|
||||
shared_memory_base_name is unique value for each server
|
||||
unique_part is uniquel value for each object (events and file-mapping)
|
||||
*/
|
||||
suffix_pos = strxmov(tmp, "Global\\", shared_memory_base_name, "_", NullS);
|
||||
strmov(suffix_pos, "CONNECT_REQUEST");
|
||||
if (!(event_connect_request= OpenEvent(event_access_rights, FALSE, tmp)))
|
||||
for (i = 0; i< array_elements(name_prefixes); i++)
|
||||
{
|
||||
prefix= name_prefixes[i];
|
||||
suffix_pos = strxmov(tmp, prefix , shared_memory_base_name, "_", NullS);
|
||||
strmov(suffix_pos, "CONNECT_REQUEST");
|
||||
event_connect_request= OpenEvent(event_access_rights, FALSE, tmp);
|
||||
if (event_connect_request)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!event_connect_request)
|
||||
{
|
||||
error_allow = CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR;
|
||||
goto err;
|
||||
@ -545,7 +557,7 @@ HANDLE create_shared_memory(MYSQL *mysql,NET *net, uint connect_timeout)
|
||||
unique_part is uniquel value for each object (events and file-mapping)
|
||||
number_of_connection is number of connection between server and client
|
||||
*/
|
||||
suffix_pos = strxmov(tmp, "Global\\", shared_memory_base_name, "_", connect_number_char,
|
||||
suffix_pos = strxmov(tmp, prefix , shared_memory_base_name, "_", connect_number_char,
|
||||
"_", NullS);
|
||||
strmov(suffix_pos, "DATA");
|
||||
if ((handle_file_map = OpenFileMapping(FILE_MAP_WRITE,FALSE,tmp)) == NULL)
|
||||
|
Loading…
x
Reference in New Issue
Block a user