diff options
| author | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-06-25 14:40:51 +0000 |
|---|---|---|
| committer | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-06-25 14:40:51 +0000 |
| commit | 3d732a683adf9ef53d406ee39c595431fb0181d8 (patch) | |
| tree | ae7d7b6e9e8e8612d5e9109f3ea15f427b03d5d4 /src/libs/zbxcommon | |
| parent | 80312add3bb092cd15615d8c0ed715628e747164 (diff) | |
| download | zabbix-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.c | 87 |
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; +} |
