diff options
| author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-08-29 10:57:20 +0000 |
|---|---|---|
| committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-08-29 10:57:20 +0000 |
| commit | 3653f1a561dccc45bf9823882cbfeeee117ea5ca (patch) | |
| tree | ce21e6f9ba9d342c387e99b95365b7a6bfaa3610 /src | |
| parent | 971a6233f5b5c95361fff6fc9ee671de5958bd1e (diff) | |
proted r3218:3224 from 1.1.2
git-svn-id: svn://svn.zabbix.com/trunk@3228 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
| -rw-r--r-- | src/libs/zbxcommon/misc.c | 37 | ||||
| -rw-r--r-- | src/zabbix_server/expression.c | 18 | ||||
| -rw-r--r-- | src/zabbix_server/poller/checks_snmp.c | 1 |
3 files changed, 48 insertions, 8 deletions
diff --git a/src/libs/zbxcommon/misc.c b/src/libs/zbxcommon/misc.c index 381892f0..f2c56bda 100644 --- a/src/libs/zbxcommon/misc.c +++ b/src/libs/zbxcommon/misc.c @@ -245,8 +245,11 @@ int is_double(char *c) { int i; int dot=-1; + int len; - for(i=0;c[i]!=0;i++) + for(i=0; c[i]==' ' && c[i]!=0;i++); /* trim left spaces */ + + for(len=0; c[i]!=0; i++, len++) { if((c[i]>='0')&&(c[i]<='9')) { @@ -256,15 +259,23 @@ int is_double(char *c) if((c[i]=='.')&&(dot==-1)) { dot=i; + continue; + } - if((dot!=0)&&(dot!=(int)strlen(c)-1)) - { - continue; - } + if(c[i]==' ') /* check right spaces */ + { + for( ; c[i]==' ' && c[i]!=0;i++); /* trim right spaces */ + + if(c[i]==0) break; /* SUCCEED */ } return FAIL; } + + if(len <= 0) return FAIL; + + if(len == 1 && dot!=-1) return FAIL; + return SUCCEED; } @@ -286,17 +297,29 @@ int is_double(char *c) ******************************************************************************/ int is_uint(char *c) { - int i; + int i; + int len; - for(i=0;c[i]!=0;i++) + for(i=0; c[i]==' ' && c[i]!=0;i++); /* trim left spaces */ + + for(len=0; c[i]!=0; i++,len++) { if((c[i]>='0')&&(c[i]<='9')) { continue; } + + if(c[i]==' ') /* check right spaces */ + { + for( ; c[i]==' ' && c[i]!=0;i++); /* trim right spaces */ + + if(c[i]==0) break; /* SUCCEED */ + } return FAIL; } + if(len <= 0) return FAIL; + return SUCCEED; } diff --git a/src/zabbix_server/expression.c b/src/zabbix_server/expression.c index d477a1c9..e66b09e4 100644 --- a/src/zabbix_server/expression.c +++ b/src/zabbix_server/expression.c @@ -555,7 +555,7 @@ int evaluate(int *result,char *exp, char *error, int maxerrlen) * Author: Alexei Vladishev * * * * Comments: {DATE},{TIME},{HOSTNAME},{IPADDRESS},{STATUS}, * - * {TRIGGER.DESCRIPTION}, {TRIGGER.KEY} * + * {TRIGGER.DESCRIPTION}, {TRIGGER.KEY}, {SEVERITY} * * * ******************************************************************************/ void substitute_simple_macros(DB_TRIGGER *trigger, DB_ACTION *action, char *data) @@ -704,6 +704,22 @@ void substitute_simple_macros(DB_TRIGGER *trigger, DB_ACTION *action, char *data strncat(data, tmp, MAX_STRING_LEN); strncat(data, s+strlen("{STATUS}"), MAX_STRING_LEN); } + else if( (s = strstr(str,"{SEVERITY}")) != NULL ) + { + s[0]=0; + strcpy(data, str); + + if(trigger->priority == 0) strncat(data, "Not classified", MAX_STRING_LEN); + else if(trigger->priority == 1) strncat(data, "Information", MAX_STRING_LEN); + else if(trigger->priority == 2) strncat(data, "Warning", MAX_STRING_LEN); + else if(trigger->priority == 3) strncat(data, "Average", MAX_STRING_LEN); + else if(trigger->priority == 4) strncat(data, "High", MAX_STRING_LEN); + else if(trigger->priority == 5) strncat(data, "Disaster", MAX_STRING_LEN); + else strncat(data, "Uncnown", MAX_STRING_LEN); + + strncat(data, tmp, MAX_STRING_LEN); + strncat(data, s+strlen("{SEVERITY}"), MAX_STRING_LEN); + } else { found = FAIL; diff --git a/src/zabbix_server/poller/checks_snmp.c b/src/zabbix_server/poller/checks_snmp.c index a0b755dc..6266ec48 100644 --- a/src/zabbix_server/poller/checks_snmp.c +++ b/src/zabbix_server/poller/checks_snmp.c @@ -373,6 +373,7 @@ int get_value_snmp(DB_ITEM *item, AGENT_RESULT *value) p = malloc(16); if(p) { + ip = vars->val.string; zbx_snprintf(p,16,"%d.%d.%d.%d",ip[0],ip[1],ip[2],ip[3]); SET_STR_RESULT(value, p); |
