diff options
author | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-08-18 20:06:59 +0000 |
---|---|---|
committer | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-08-18 20:06:59 +0000 |
commit | e90e90fb5fc32bd34c9e3efec4d89e9a9c4caa01 (patch) | |
tree | 15a2e5f17b32da049df41b6f77dde272e45a5e62 /src | |
parent | b0b1e5513427852cf02098edf26c181371bc2c9b (diff) | |
download | zabbix-e90e90fb5fc32bd34c9e3efec4d89e9a9c4caa01.tar.gz zabbix-e90e90fb5fc32bd34c9e3efec4d89e9a9c4caa01.tar.xz zabbix-e90e90fb5fc32bd34c9e3efec4d89e9a9c4caa01.zip |
- fixed W32 agent crash in eventlog[]
git-svn-id: svn://svn.zabbix.com/trunk@1987 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
-rwxr-xr-x | src/zabbix_agent_win32/Debug/ZabbixW32.exe | bin | 331849 -> 331849 bytes | |||
-rwxr-xr-x | src/zabbix_agent_win32/Release/ZabbixW32.exe | bin | 106496 -> 102400 bytes | |||
-rwxr-xr-x | src/zabbix_agent_win32/active.cpp | 54 | ||||
-rwxr-xr-x | src/zabbix_agent_win32/eventlog.cpp | 98 | ||||
-rw-r--r-- | src/zabbix_agent_win32/main.cpp | 2 |
5 files changed, 90 insertions, 64 deletions
diff --git a/src/zabbix_agent_win32/Debug/ZabbixW32.exe b/src/zabbix_agent_win32/Debug/ZabbixW32.exe Binary files differindex 8e78f239..2c9cfcde 100755 --- a/src/zabbix_agent_win32/Debug/ZabbixW32.exe +++ b/src/zabbix_agent_win32/Debug/ZabbixW32.exe diff --git a/src/zabbix_agent_win32/Release/ZabbixW32.exe b/src/zabbix_agent_win32/Release/ZabbixW32.exe Binary files differindex 40327380..53b1bde6 100755 --- a/src/zabbix_agent_win32/Release/ZabbixW32.exe +++ b/src/zabbix_agent_win32/Release/ZabbixW32.exe diff --git a/src/zabbix_agent_win32/active.cpp b/src/zabbix_agent_win32/active.cpp index f2a62ad8..064d4f63 100755 --- a/src/zabbix_agent_win32/active.cpp +++ b/src/zabbix_agent_win32/active.cpp @@ -93,14 +93,14 @@ void disable_all_metrics() { int i; - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","disable_all_metrics: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","disable_all_metrics: start"); for(i=0;;i++) { if(metrics[i].key == NULL) break; metrics[i].status = ITEM_STATUS_NOTSUPPORTED; } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","disable_all_metrics: end"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","disable_all_metrics: end"); } int get_min_nextcheck() @@ -109,7 +109,7 @@ int get_min_nextcheck() int min=-1; int nodata=0; - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","get_min_nextcheck: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","get_min_nextcheck: start"); for(i=0;;i++) { @@ -125,10 +125,10 @@ int get_min_nextcheck() if(nodata==0) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","get_min_nextcheck: end: FAIL"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","get_min_nextcheck: end: FAIL"); return FAIL; } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","get_min_nextcheck: end"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","get_min_nextcheck: end"); return min; } @@ -137,7 +137,7 @@ void add_check(char *key, int refresh, int lastlogsize) { int i; - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","add_check: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","add_check: start"); for(i=0;;i++) { @@ -165,7 +165,7 @@ void add_check(char *key, int refresh, int lastlogsize) break; } } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","add_check: end"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","add_check: end"); } // Return position of Nth delimiter from right size, 0 - otherwise @@ -174,14 +174,14 @@ int strnrchr(char *str, int num, char delim) int i=0; int n=0; - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","strnrchr: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","strnrchr: start"); for(i=strlen(str)-1;i>=0;i--) { if(str[i]==delim) n++; if(n==num) break; } if(i==-1) i=0; - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","strnrchr: end"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","strnrchr: end"); return i; } @@ -198,7 +198,7 @@ int parse_list_of_checks(char *str) char *str_copy; int p1,p2; - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","parse_list_of_checks: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","parse_list_of_checks: start"); disable_all_metrics(); str_copy=str; @@ -243,7 +243,7 @@ int parse_list_of_checks(char *str) pos=strchr(str_copy,'\n'); } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","parse_list_of_checks: end"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","parse_list_of_checks: end"); return SUCCEED; } @@ -259,7 +259,7 @@ int get_active_checks(char *server, int port, char *error, int max_error_len) struct sockaddr_in servaddr_in; // zabbix_log( LOG_LEVEL_DEBUG, "get_active_checks: host[%s] port[%d]", server, port); - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","get_active_checks: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","get_active_checks: start"); servaddr_in.sin_family=AF_INET; hp=gethostbyname(server); @@ -404,7 +404,7 @@ int get_active_checks(char *server, int port, char *error, int max_error_len) // zabbix_log(LOG_LEVEL_WARNING, "Problem with close [%s]", strerror(errno)); } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","get_active_checks: end"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","get_active_checks: end"); return SUCCEED; } @@ -421,7 +421,7 @@ int send_value(char *server,int port,char *host, char *key,char *value,char *las struct sockaddr_in servaddr_in; // zabbix_log( LOG_LEVEL_DEBUG, "In send_value()"); - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","send_value: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","send_value: start"); servaddr_in.sin_family=AF_INET; hp=gethostbyname(server); @@ -510,7 +510,7 @@ sprintf(tmp,"Error in recvfrom()"); // zabbix_log( LOG_LEVEL_WARNING, "Error in close() [%s] [%s]",server, strerror(errno)); } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","send_value: end"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","send_value: end"); return SUCCEED; } @@ -533,7 +533,7 @@ int process_active_checks(char *server, int port) char c[MAX_STRING_LEN]; char *filename; - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_active_checks: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_active_checks: start"); now=time(NULL); for(i=0;;i++) @@ -580,12 +580,12 @@ int process_active_checks(char *server, int port) /* Special processing for log files */ else if(strncmp(metrics[i].key,"eventlog[",9) == 0) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_active_checks: 1"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_active_checks: 1"); strscpy(c,metrics[i].key); filename=strtok(c,"[]"); filename=strtok(NULL,"[]"); - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_active_checks: 2"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_active_checks: 2"); count=0; while(process_eventlog_new(filename,&metrics[i].lastlogsize, timestamp, source, severity, value) == 0) @@ -596,7 +596,7 @@ int process_active_checks(char *server, int port) // WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","In loop()"); // WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s",value); - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_active_checks: 3"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_active_checks: 3"); sprintf(lastlogsize,"%d",metrics[i].lastlogsize); if(send_value(server,port,confHostname,metrics[i].key,value,lastlogsize,timestamp,source,severity) == FAIL) { @@ -613,7 +613,7 @@ int process_active_checks(char *server, int port) // WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","End of loop()"); /* Do not flood ZABBIX server if file grows too fast */ if(count >= MAX_LINES_PER_SECOND*metrics[i].refresh) break; - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_active_checks: 4"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_active_checks: 4"); } } else @@ -654,13 +654,13 @@ int process_active_checks(char *server, int port) metrics[i].nextcheck=time(NULL)+metrics[i].refresh; } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_active_checks: end"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_active_checks: end"); return ret; } void refresh_metrics(char *server, int port, char *error, int max_error_len) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","refresh_metrics: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","refresh_metrics: start"); // zabbix_log( LOG_LEVEL_DEBUG, "In refresh_metrics()"); while(get_active_checks(server, port, error, sizeof(error)) != SUCCEED) { @@ -670,7 +670,7 @@ void refresh_metrics(char *server, int port, char *error, int max_error_len) #endif Sleep(60*1000); } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","refresh_metrics: end"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","refresh_metrics: end"); } void ActiveChecksThread(void *) @@ -684,7 +684,7 @@ void ActiveChecksThread(void *) // WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"d",confServerPort); - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","ActiveChecksThread: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","ActiveChecksThread: start"); init_list(); refresh_metrics(confServer, confServerPort, error, sizeof(error)); @@ -692,7 +692,7 @@ void ActiveChecksThread(void *) for(;;) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","ActiveChecksThread: loop 1"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","ActiveChecksThread: loop 1"); if(process_active_checks(confServer, confServerPort) == FAIL) { Sleep(60*1000); @@ -732,7 +732,7 @@ void ActiveChecksThread(void *) refresh_metrics(confServer, confServerPort, error, sizeof(error)); nextrefresh=time(NULL)+300; } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","ActiveChecksThread: loop 2"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","ActiveChecksThread: loop 2"); } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","ActiveChecksThread: end"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","ActiveChecksThread: end"); } diff --git a/src/zabbix_agent_win32/eventlog.cpp b/src/zabbix_agent_win32/eventlog.cpp index 367e0c54..eda98fed 100755 --- a/src/zabbix_agent_win32/eventlog.cpp +++ b/src/zabbix_agent_win32/eventlog.cpp @@ -1,7 +1,7 @@ #include "zabbixw32.h" #define DllExport __declspec( dllexport ) -#define MAX_INSERT_STRS 8 +#define MAX_INSERT_STRS 64 #define MAX_MSG_LENGTH 1024 DllExport long MyOpenEventLog(char *pAppName,HANDLE @@ -21,31 +21,40 @@ int process_eventlog_new(char *source,int *lastlogsize, char *timestamp, char *s double time; DWORD t,type; WORD category; + + char tmp[1024]; + +// sprintf(tmp,"process_ebent_log_new([%s],[%d],[%s],[%s],[%s])", source,*lastlogsize, timestamp, src,message); // open up event log // if (!MyOpenEventLog("Application",&hAppLog,&nRecords,&Latest)) - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s",tmp); if (!MyOpenEventLog(source,&hAppLog,&nRecords,&Latest)) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: if 1"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: if 1"); // for (i = nRecords + 1;--i;++Latest) for (i = 0; i<nRecords;i++) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: for 1"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: for 1"); // if (Latest > nRecords) // need totreat as circular que // Latest = 1; // WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","i"); // WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"d",i); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: for 1.1"); + sprintf(tmp,"[%d],[%d],[%d]", i, nRecords, *lastlogsize); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s",tmp); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: for 1.2"); if(*lastlogsize <= i) { // MyGetAEventLog("Application",hAppLog,Latest,&time,src,msg,&type,&category); - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: if 2"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: if 2"); if(0 == MyGetAEventLog(source,hAppLog,Latest,&time,src,message,&type,&category,&t)) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: if 3"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: if 3"); sprintf(timestamp,"%ld",t); // WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","YO"); // WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"d",type); @@ -60,21 +69,21 @@ int process_eventlog_new(char *source,int *lastlogsize, char *timestamp, char *s // WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"d",Latest); // WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s",severity); *lastlogsize = Latest; - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: if 4"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: if 4"); MyCloseEventLog(hAppLog); - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: if 5"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: if 5"); return 0; } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: if 6"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: if 6"); } Latest++; - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: for 8"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: for 8"); } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: 6"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: 6"); MyCloseEventLog(hAppLog); - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: 7"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: 7"); } -WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: end"); +//WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","process_eventlog_new: end"); return 1; } @@ -85,19 +94,19 @@ DllExport long MyOpenEventLog(char *pAppName,HANDLE HANDLE hAppLog; /* handle to the application log */ - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyOpenEventLog: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyOpenEventLog: start"); *pEventHandle = 0; *pNumRecords = 0; hAppLog = OpenEventLog(NULL,pAppName); // open log file if (!hAppLog) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyOpenEventLog: 1"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyOpenEventLog: 1"); return(GetLastError()); } GetNumberOfEventLogRecords(hAppLog,(unsigned long*)pNumRecords);// get number of records GetOldestEventLogRecord(hAppLog,(unsigned long*)pLatestRecord); *pEventHandle = hAppLog; - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyOpenEventLog: end"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyOpenEventLog: end"); return(0); } @@ -105,10 +114,10 @@ application log */ // close event logger DllExport long MyCloseEventLog(HANDLE hAppLog) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyCloseEventLog: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyCloseEventLog: start"); if (hAppLog) CloseEventLog(hAppLog); - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyCloseEventLog: end"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyCloseEventLog: end"); return(0); } @@ -116,13 +125,13 @@ DllExport long MyCloseEventLog(HANDLE hAppLog) // clear event log DllExport long MyClearEventLog(HANDLE hAppLog) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyClearEventLog: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyClearEventLog: start"); if (!(ClearEventLog(hAppLog,0))) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyClearEventLog: end1"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyClearEventLog: end1"); return(GetLastError()); } - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyClearEventLog: end2"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyClearEventLog: end2"); return(0); } @@ -150,10 +159,10 @@ messagetable DLL */ LPTSTR msgBuf; // hold text of the error message that we long err; - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: start"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: start"); if (!hAppLog) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 1"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 1"); return(0); } bSuccess = ReadEventLog(hAppLog, /* event-log handle */ @@ -169,7 +178,7 @@ read */ record */ if (!bSuccess) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 2"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 2"); return(GetLastError()); } pELR = (EVENTLOGRECORD*)bBuffer; // point to data @@ -182,7 +191,7 @@ record */ strcat(temp,((char*)pELR + sizeof(EVENTLOGRECORD))); if (RegOpenKey(HKEY_LOCAL_MACHINE, temp, &hk)) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 3"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 3"); return(GetLastError()); } Data = MAX_PATH; @@ -199,7 +208,7 @@ value data */ &Data)) /* length of value data */ { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 4"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 4"); return(GetLastError()); } pFile = temp; @@ -207,23 +216,35 @@ data */ for (;;) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: for 1"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: for 1"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s",pFile); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: for 1.1"); + + if ((pNextFile = strchr(pFile,';'))) + { +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: for 1.2"); *pNextFile = 0; + } +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: for 1.3"); + + if (!ExpandEnvironmentStrings(pFile, MsgDll, MAX_PATH)) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: for 2"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: for 2"); return(GetLastError()); } +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: for 2.1"); if (!(hLib = LoadLibraryEx(MsgDll, NULL, LOAD_LIBRARY_AS_DATAFILE))) { - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: for 3"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: for 3"); return(1); } /* prepare the array of insert strings for FormatMessage - the insert strings are in the log entry. */ pCh = (char *)((LPBYTE)pELR + pELR->StringOffset); + for (i = 0; i < pELR->NumStrings && i < MAX_INSERT_STRS; i++) { aInsertStrs[i] = pCh; @@ -231,6 +252,7 @@ data */ next string */ } + /* Format the message from the message DLL with the insert strings */ if (FormatMessage( FORMAT_MESSAGE_FROM_HMODULE | /* get the @@ -239,8 +261,10 @@ message from the DLL */ the msg buffer for us */ FORMAT_MESSAGE_ARGUMENT_ARRAY | /* lpArgs is an array of pointers */ - 60, /* line length + //60, + /* line length for the mesages */ + FORMAT_MESSAGE_FROM_SYSTEM, hLib, /* the messagetable DLL handle */ pELR->EventID, /* message ID */ @@ -251,13 +275,16 @@ pointer to buffer for message */ size of the message buffer */ aInsertStrs)) /* array of insert strings for the message */ + { break; + } + FreeLibrary(hLib); - if (!pNextFile) // more files to read ? + + if (!pNextFile) // more files to read ? { RegCloseKey(hk); i = GetLastError(); - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: for 4"); return(i); } pFile = ++pNextFile; @@ -274,18 +301,17 @@ insert strings for the message */ /* Free the buffer that FormatMessage allocated for us. */ -WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 10"); LocalFree((HLOCAL) msgBuf); /* free the message DLL since we don't know if we'll need it again */ - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 11"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 11"); FreeLibrary(hLib); - WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 12"); +// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: 12"); RegCloseKey(hk); //WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","Y"); //WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"d",*pType); -WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: end"); +//WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s","MyGetAEventLog: end"); return(0); }
\ No newline at end of file diff --git a/src/zabbix_agent_win32/main.cpp b/src/zabbix_agent_win32/main.cpp index 9e84b339..880d9f57 100644 --- a/src/zabbix_agent_win32/main.cpp +++ b/src/zabbix_agent_win32/main.cpp @@ -42,7 +42,7 @@ WORD confServerPort=10051; DWORD confServerAddr[MAX_SERVERS]; DWORD confServerCount=0; DWORD confTimeout=3000; // 3 seconds default timeout -DWORD confMaxProcTime=100; // 100 milliseconds is default acceptable collector sample processing time +DWORD confMaxProcTime=1000; // 1000 milliseconds is default acceptable collector sample processing time DWORD g_dwLogLevel = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | EVENTLOG_INFORMATION_TYPE; SUBAGENT *subagentList; // List of loaded subagents |