Zabbix後端源碼解析二

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))