summaryrefslogtreecommitdiffstats
path: root/src/libs/zbxcommon
diff options
context:
space:
mode:
authoralex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-06-25 14:40:51 +0000
committeralex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-06-25 14:40:51 +0000
commit3d732a683adf9ef53d406ee39c595431fb0181d8 (patch)
treeae7d7b6e9e8e8612d5e9109f3ea15f427b03d5d4 /src/libs/zbxcommon
parent80312add3bb092cd15615d8c0ed715628e747164 (diff)
downloadzabbix-3d732a683adf9ef53d406ee39c595431fb0181d8.tar.gz
zabbix-3d732a683adf9ef53d406ee39c595431fb0181d8.tar.xz
zabbix-3d732a683adf9ef53d406ee39c595431fb0181d8.zip
- improved main poller loop (Alexei)
- fixed int_in_list() function (Alexei) git-svn-id: svn://svn.zabbix.com/trunk@4361 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs/zbxcommon')
-rw-r--r--src/libs/zbxcommon/misc.c87
1 files changed, 85 insertions, 2 deletions
diff --git a/src/libs/zbxcommon/misc.c b/src/libs/zbxcommon/misc.c
index fec4a593..5dd11a73 100644
--- a/src/libs/zbxcommon/misc.c
+++ b/src/libs/zbxcommon/misc.c
@@ -255,7 +255,7 @@ int ip_in_list(char *list, char *ip)
char c = '\0';
int i1,i2,i3,i4,i5;
int ret = FAIL;
- char *start, *end;
+ char *start = NULL, *end = NULL;
zabbix_log( LOG_LEVEL_DEBUG, "In ip_in_list(list:%s,ip:%s)",
@@ -306,6 +306,11 @@ int ip_in_list(char *list, char *ip)
}
}
+ if(end != NULL)
+ {
+ end[0]=c;
+ }
+
zabbix_log( LOG_LEVEL_DEBUG, "End ip_in_list(ret:%s)", ret == SUCCEED?"SUCCEED":"FAIL");
return ret;
@@ -329,7 +334,7 @@ int ip_in_list(char *list, char *ip)
******************************************************************************/
int int_in_list(char *list, int value)
{
- char *start, *end;
+ char *start = NULL, *end = NULL;
int i1,i2;
int ret = FAIL;
char c = '\0';
@@ -374,6 +379,11 @@ int int_in_list(char *list, int value)
}
}
+ if(end != NULL)
+ {
+ end[0]=c;
+ }
+
zabbix_log( LOG_LEVEL_DEBUG, "End int_in_list(ret:%s)", ret == SUCCEED?"SUCCEED":"FAIL");
return ret;
@@ -640,3 +650,76 @@ int is_uint(char *c)
return SUCCEED;
}
+/******************************************************************************
+ * *
+ * Function: uint64_in_list *
+ * *
+ * Purpose: check if uin64 integer matches a list of integers *
+ * *
+ * Parameters: list - integers [i1-i2,i3,i4,i5-i6] (10-25,45,67-699 *
+ * value- value *
+ * *
+ * Return value: FAIL - out of period, SUCCEED - within the list *
+ * *
+ * Author: Alexei Vladishev *
+ * *
+ * Comments: *
+ * *
+ ******************************************************************************/
+int uint64_in_list(char *list, zbx_uint64_t value)
+{
+ char *start = NULL, *end = NULL;
+ zbx_uint64_t i1,i2,tmp_uint64;
+ int ret = FAIL;
+ char c = '\0';
+
+ zabbix_log( LOG_LEVEL_DEBUG, "In int_in_list(list:%s,value:" ZBX_FS_UI64 ")", list, value);
+
+ for(start = list; start[0] != '\0';)
+ {
+ end=strchr(start, ',');
+
+ if(end != NULL)
+ {
+ c=end[0];
+ end[0]='\0';
+ }
+
+ if(sscanf(start,ZBX_FS_UI64 "-" ZBX_FS_UI64,&i1,&i2) == 2)
+ {
+ if(value>=i1 && value<=i2)
+ {
+ ret = SUCCEED;
+ break;
+ }
+ }
+ else
+ {
+ ZBX_STR2UINT64(tmp_uint64,start);
+ if(tmp_uint64 == value)
+ {
+ ret = SUCCEED;
+ break;
+ }
+ }
+
+ if(end != NULL)
+ {
+ end[0]=c;
+ start=end+1;
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ if(end != NULL)
+ {
+ end[0]=c;
+ }
+
+ zabbix_log( LOG_LEVEL_DEBUG, "End int_in_list(ret:%s)", ret == SUCCEED?"SUCCEED":"FAIL");
+
+ return ret;
+}