Commit b95a1819 authored by msvensson@pilot.blaudden's avatar msvensson@pilot.blaudden

Merge pilot.blaudden:/home/msvensson/mysql/bug27490/my50-bug27490

into  pilot.blaudden:/home/msvensson/mysql/bug27490/my51-bug27490
parents 164397e7 b82b20cd
...@@ -1714,7 +1714,7 @@ err: ...@@ -1714,7 +1714,7 @@ err:
#ifdef __NT__ #ifdef __NT__
static int eventSource = 0; static int eventSource = 0;
void setup_windows_event_source() static void setup_windows_event_source()
{ {
HKEY hRegKey= NULL; HKEY hRegKey= NULL;
DWORD dwError= 0; DWORD dwError= 0;
...@@ -4216,7 +4216,7 @@ static bool test_if_number(register const char *str, ...@@ -4216,7 +4216,7 @@ static bool test_if_number(register const char *str,
} /* test_if_number */ } /* test_if_number */
void print_buffer_to_file(enum loglevel level, const char *buffer) static void print_buffer_to_file(enum loglevel level, const char *buffer)
{ {
time_t skr; time_t skr;
struct tm tm_tmp; struct tm tm_tmp;
...@@ -4314,23 +4314,15 @@ void MYSQL_BIN_LOG::signal_update() ...@@ -4314,23 +4314,15 @@ void MYSQL_BIN_LOG::signal_update()
} }
#ifdef __NT__ #ifdef __NT__
void print_buffer_to_nt_eventlog(enum loglevel level, char *buff, static void print_buffer_to_nt_eventlog(enum loglevel level, char *buff,
uint length, int buffLen) uint length, int buffLen)
{ {
HANDLE event; HANDLE event;
char *buffptr; char *buffptr= buff;
LPCSTR *buffmsgptr;
DBUG_ENTER("print_buffer_to_nt_eventlog"); DBUG_ENTER("print_buffer_to_nt_eventlog");
buffptr= buff; /* Add ending CR/LF's to string, overwrite last chars if necessary */
if (length > (uint)(buffLen-5)) strmov(buffptr+min(length, buffLen-5), "\r\n\r\n");
{
char *newBuff= new char[length + 5];
strcpy(newBuff, buff);
buffptr= newBuff;
}
strmov(buffptr+length, "\r\n\r\n");
buffmsgptr= (LPCSTR*) &buffptr; // Keep windows happy
setup_windows_event_source(); setup_windows_event_source();
if ((event= RegisterEventSource(NULL,"MySQL"))) if ((event= RegisterEventSource(NULL,"MySQL")))
...@@ -4338,24 +4330,20 @@ void print_buffer_to_nt_eventlog(enum loglevel level, char *buff, ...@@ -4338,24 +4330,20 @@ void print_buffer_to_nt_eventlog(enum loglevel level, char *buff,
switch (level) { switch (level) {
case ERROR_LEVEL: case ERROR_LEVEL:
ReportEvent(event, EVENTLOG_ERROR_TYPE, 0, MSG_DEFAULT, NULL, 1, 0, ReportEvent(event, EVENTLOG_ERROR_TYPE, 0, MSG_DEFAULT, NULL, 1, 0,
buffmsgptr, NULL); (LPCSTR*)&buffptr, NULL);
break; break;
case WARNING_LEVEL: case WARNING_LEVEL:
ReportEvent(event, EVENTLOG_WARNING_TYPE, 0, MSG_DEFAULT, NULL, 1, 0, ReportEvent(event, EVENTLOG_WARNING_TYPE, 0, MSG_DEFAULT, NULL, 1, 0,
buffmsgptr, NULL); (LPCSTR*) &buffptr, NULL);
break; break;
case INFORMATION_LEVEL: case INFORMATION_LEVEL:
ReportEvent(event, EVENTLOG_INFORMATION_TYPE, 0, MSG_DEFAULT, NULL, 1, ReportEvent(event, EVENTLOG_INFORMATION_TYPE, 0, MSG_DEFAULT, NULL, 1,
0, buffmsgptr, NULL); 0, (LPCSTR*) &buffptr, NULL);
break; break;
} }
DeregisterEventSource(event); DeregisterEventSource(event);
} }
/* if we created a string buffer, then delete it */
if (buffptr != buff)
delete[] buffptr;
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
#endif /* __NT__ */ #endif /* __NT__ */
...@@ -4398,8 +4386,7 @@ int vprint_msg_to_log(enum loglevel level, const char *format, va_list args) ...@@ -4398,8 +4386,7 @@ int vprint_msg_to_log(enum loglevel level, const char *format, va_list args)
uint length; uint length;
DBUG_ENTER("vprint_msg_to_log"); DBUG_ENTER("vprint_msg_to_log");
/* "- 5" is because of print_buffer_to_nt_eventlog() */ length= my_vsnprintf(buff, sizeof(buff), format, args);
length= my_vsnprintf(buff, sizeof(buff) - 5, format, args);
print_buffer_to_file(level, buff); print_buffer_to_file(level, buff);
#ifdef __NT__ #ifdef __NT__
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment