summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-07-27 20:49:32 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-07-27 20:49:32 +0000
commit19c22b7411dd4ed1c19cd96120bbe675886febd0 (patch)
tree3e3f483a0bd516bfad17e03af0c0f83292b99f69 /src
parent1173d81ce7f6744a5b70d839f4008999083f4d6a (diff)
downloadzabbix-19c22b7411dd4ed1c19cd96120bbe675886febd0.tar.gz
zabbix-19c22b7411dd4ed1c19cd96120bbe675886febd0.tar.xz
zabbix-19c22b7411dd4ed1c19cd96120bbe675886febd0.zip
Minor changes.
git-svn-id: svn://svn.zabbix.com/trunk@1909 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
-rwxr-xr-xsrc/zabbix_agent_win32/Release/ZabbixW32.exebin98304 -> 98304 bytes
-rwxr-xr-xsrc/zabbix_agent_win32/active.cpp50
2 files changed, 44 insertions, 6 deletions
diff --git a/src/zabbix_agent_win32/Release/ZabbixW32.exe b/src/zabbix_agent_win32/Release/ZabbixW32.exe
index f5a7eccb..c7800951 100755
--- a/src/zabbix_agent_win32/Release/ZabbixW32.exe
+++ b/src/zabbix_agent_win32/Release/ZabbixW32.exe
Binary files differ
diff --git a/src/zabbix_agent_win32/active.cpp b/src/zabbix_agent_win32/active.cpp
index ca2044c6..023311df 100755
--- a/src/zabbix_agent_win32/active.cpp
+++ b/src/zabbix_agent_win32/active.cpp
@@ -158,14 +158,34 @@ void add_check(char *key, int refresh, int lastlogsize)
}
}
+// Return position of Nth delimiter from right size, 0 - otherwise
+int strnrchr(char *str, int num, char delim)
+{
+ int i=0;
+ int n=0;
+
+ for(i=strlen(str)-1;i>=0;i--)
+ {
+ if(str[i]==delim) n++;
+ if(n==num) break;
+ }
+ if(i==-1) i=0;
+ return i;
+}
+
/* Parse list of active checks received from server */
int parse_list_of_checks(char *str)
{
char line[MAX_BUF_LEN];
- char *key,*refresh,*lastlogsize;
+ char
+ key[MAX_STRING_LEN],
+ refresh[MAX_STRING_LEN],
+ lastlogsize[MAX_STRING_LEN];
//char *s1, *s2;
char *pos;
char *str_copy;
+ int i;
+ int p1,p2,p3;
disable_all_metrics();
@@ -183,9 +203,25 @@ int parse_list_of_checks(char *str)
// sscanf(line,"%s:%d:%d",key,&r,&l);
- key=(char *)strtok(line,":");
- refresh=(char *)strtok(NULL,":");
- lastlogsize=(char *)strtok(NULL,":");
+ p2=strnrchr(line,1,':');
+ p1=strnrchr(line,2,':');
+
+ memset(key,0,sizeof(key));
+ memset(refresh,0,sizeof(refresh));
+ memset(lastlogsize,0,sizeof(lastlogsize));
+
+ strcpy(lastlogsize,line+p2+1);
+// WriteLog(MSG_SOCKET_ERROR,EVENTLOG_ERROR_TYPE,"s",lastlogsize);
+
+ strncpy(key,line,p1);
+// WriteLog(MSG_SOCKET_ERROR,EVENTLOG_ERROR_TYPE,"s",key);
+
+ strncpy(refresh,line+p1+1,p2-p1-1);
+// WriteLog(MSG_SOCKET_ERROR,EVENTLOG_ERROR_TYPE,"s",refresh);
+
+// key=(char *)strtok(line,":");
+// refresh=(char *)strtok(NULL,":");
+// lastlogsize=(char *)strtok(NULL,":");
add_check(key, atoi(refresh), atoi(lastlogsize));
// add_check(key, r, l);
@@ -416,6 +452,8 @@ int send_value(char *server,int port,char *shortname,char *value)
sprintf(tosend,"%s:%s\n",shortname,value);
+// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s",tosend);
+
if( sendto(s,tosend,strlen(tosend),0,(struct sockaddr *)&servaddr_in,sizeof(struct sockaddr_in)) == -1 )
{
// zabbix_log( LOG_LEVEL_WARNING, "Error in sendto() [%s:%d] [%s]",server, port, strerror(errno));
@@ -480,7 +518,7 @@ int process_active_checks(char *server, int port)
if(metrics[i].nextcheck>now) continue;
if(metrics[i].status!=ITEM_STATUS_ACTIVE) continue;
- WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s",metrics[i].key);
+// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"s",metrics[i].key);
/* Special processing for log files */
if(strncmp(metrics[i].key,"log[",4) == 0)
{
@@ -599,7 +637,7 @@ void ActiveChecksThread(void *)
// zabbix_log( LOG_LEVEL_WARNING, "zabbix_agentd %ld started",(long)getpid());
- WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"d",confServerPort);
+// WriteLog(MSG_ACTIVE_CHECKS,EVENTLOG_ERROR_TYPE,"d",confServerPort);
init_list();