Zabbix後端源碼解析二
void test_parameter(const char *key)
函數通過process函數進行處理
if (SUCCEED == process(key, 0, &result))
int process(const char *in_command, unsigned flags, AGENT_RESULT *result)
將in_command賦值給request
if (SUCCEED != parse_item_key(zbx_alias_get(in_command), &request))
由於此時request僅包含key值,所以需要通過key值找出其在commands中的位置,才能通過commands調用key所對應的函數
for (command = commands; NULL != command->key; command++)
{
if (0 == strcmp(command->key, request.key))
break;
}
調用key所對應的函數
if (SYSINFO_RET_OK != command->function(&request, result))