diff options
| author | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-07-10 12:22:47 +0000 |
|---|---|---|
| committer | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-07-10 12:22:47 +0000 |
| commit | e27be7bda70afa0e3c3e786582356886b7d262f4 (patch) | |
| tree | 57e73c6a558278830d163356dd0a44ae50339c24 /src/zabbix_server/poller | |
| parent | 09606f5c0b83c06e78e089cd1a7fd327b3af346a (diff) | |
| download | zabbix-e27be7bda70afa0e3c3e786582356886b7d262f4.tar.gz zabbix-e27be7bda70afa0e3c3e786582356886b7d262f4.tar.xz zabbix-e27be7bda70afa0e3c3e786582356886b7d262f4.zip | |
- changed syntax of keys for external checks (Alexei)
[svn merge -r4453:4455 svn://svn.zabbix.com/branches/1.4.2]
git-svn-id: svn://svn.zabbix.com/trunk@4456 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/zabbix_server/poller')
| -rw-r--r-- | src/zabbix_server/poller/checks_external.c | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/src/zabbix_server/poller/checks_external.c b/src/zabbix_server/poller/checks_external.c index fb0c73e3..a409ad08 100644 --- a/src/zabbix_server/poller/checks_external.c +++ b/src/zabbix_server/poller/checks_external.c @@ -56,22 +56,24 @@ int get_value_external(DB_ITEM *item, AGENT_RESULT *result) init_result(result); strscpy(key, item->key); - if((p2=strstr(key,"(")) != NULL) + if((p2=strchr(key,'[')) != NULL) { *p2=0; strscpy(scriptname,key); - *p2='('; + zabbix_log( LOG_LEVEL_DEBUG, "scriptname [%s]",scriptname); + *p2='['; p2++; } else ret = NOTSUPPORTED; if(ret == SUCCEED) { - if((ret == SUCCEED) && (p=strstr(p2,")")) != NULL) + if((ret == SUCCEED) && (p=strchr(p2,']')) != NULL) { *p=0; strscpy(params,p2); - *p=')'; + zabbix_log( LOG_LEVEL_DEBUG, "params [%s]",params); + *p=']'; p++; } else ret = NOTSUPPORTED; @@ -95,20 +97,33 @@ int get_value_external(DB_ITEM *item, AGENT_RESULT *result) } /* we only care about the first line */ - fgets(msg, sizeof(msg)-1, fp); - for (i = 0; i < MAX_STRING_LEN && msg[i] != 0; ++i) + memset(msg,0,sizeof(msg)); + if(NULL != fgets(msg, sizeof(msg)-1, fp)) { - if (msg[i] == '\n') + for (i = 0; i < MAX_STRING_LEN && msg[i] != 0; ++i) { - msg[i] = 0; - break; + if (msg[i] == '\n') + { + msg[i] = 0; + break; + } } - } + zabbix_log( LOG_LEVEL_DEBUG, "Result [%s]", msg); - set_result_type(result,item->value_type,strdup(msg)); + set_result_type(result,item->value_type,strdup(msg)); + } + else + { + zbx_snprintf(error,MAX_STRING_LEN-1,"Script %s/%s returned nothing.", + CONFIG_EXTERNALSCRIPTS, + scriptname); + zabbix_log( LOG_LEVEL_WARNING, "%s", error); + SET_STR_RESULT(result, strdup(error)); + ret = NOTSUPPORTED; + } /* cleanup */ pclose(fp); - return SUCCEED; + return ret; } |
