コード例 #1
0
ファイル: net.c プロジェクト: talassa2004/Zabbix_
int	NET_IF_TOTAL(AGENT_REQUEST *request, AGENT_RESULT *result)
{
    char		*if_name, *mode;
    MIB_IFROW	pIfRow;

    if (2 < request->nparam)
        return SYSINFO_RET_FAIL;

    if_name = get_rparam(request, 0);
    mode = get_rparam(request, 1);

    if (NULL == if_name || '\0' == *if_name)
        return SYSINFO_RET_FAIL;

    if (FAIL == get_if_stats(if_name, &pIfRow))
        return SYSINFO_RET_FAIL;

    if (NULL == mode || '\0' == *mode || 0 == strcmp(mode, "bytes"))	/* default parameter */
        SET_UI64_RESULT(result, pIfRow.dwInOctets + pIfRow.dwOutOctets);
    else if (0 == strcmp(mode, "packets"))
        SET_UI64_RESULT(result, pIfRow.dwInUcastPkts + pIfRow.dwInNUcastPkts +
                        pIfRow.dwOutUcastPkts + pIfRow.dwOutNUcastPkts);
    else if (0 == strcmp(mode, "errors"))
        SET_UI64_RESULT(result, pIfRow.dwInErrors + pIfRow.dwOutErrors);
    else if (0 == strcmp(mode, "dropped"))
        SET_UI64_RESULT(result, pIfRow.dwInDiscards + pIfRow.dwInUnknownProtos +
                        pIfRow.dwOutDiscards);
    else
        return SYSINFO_RET_FAIL;

    return SYSINFO_RET_OK;
}
コード例 #2
0
ファイル: net.c プロジェクト: cinience/saker
int NET_IF_TOTAL(const char *cmd, int argc,const char **argv,SYSINFO_RESULT *result) {
    const char *if_name = "MS TCP Loopback interface";
    MIB_IFROW   pIfRow;
    if (UGERR == get_if_stats(if_name, &pIfRow))
        return UGERR;
    SET_UI64_RESULT(result,bytesConvert( pIfRow.dwInOctets + pIfRow.dwOutOctets,getParam(argc,argv,0)));

    return UGOK;
}
コード例 #3
0
ファイル: net.c プロジェクト: HupuInc/zabbix
int	NET_IF_TOTAL(AGENT_REQUEST *request, AGENT_RESULT *result)
{
	char		*if_name, *mode;
	MIB_IFROW	pIfRow;

	if (2 < request->nparam)
	{
		SET_MSG_RESULT(result, zbx_strdup(NULL, "Too many parameters."));
		return SYSINFO_RET_FAIL;
	}

	if_name = get_rparam(request, 0);
	mode = get_rparam(request, 1);

	if (NULL == if_name || '\0' == *if_name)
	{
		SET_MSG_RESULT(result, zbx_strdup(NULL, "Invalid first parameter."));
		return SYSINFO_RET_FAIL;
	}

	if (FAIL == get_if_stats(if_name, &pIfRow))
	{
		SET_MSG_RESULT(result, zbx_strdup(NULL, "Cannot obtain network interface information."));
		return SYSINFO_RET_FAIL;
	}

	if (NULL == mode || '\0' == *mode || 0 == strcmp(mode, "bytes"))	/* default parameter */
		SET_UI64_RESULT(result, pIfRow.dwInOctets + pIfRow.dwOutOctets);
	else if (0 == strcmp(mode, "packets"))
		SET_UI64_RESULT(result, pIfRow.dwInUcastPkts + pIfRow.dwInNUcastPkts +
				pIfRow.dwOutUcastPkts + pIfRow.dwOutNUcastPkts);
	else if (0 == strcmp(mode, "errors"))
		SET_UI64_RESULT(result, pIfRow.dwInErrors + pIfRow.dwOutErrors);
	else if (0 == strcmp(mode, "dropped"))
		SET_UI64_RESULT(result, pIfRow.dwInDiscards + pIfRow.dwInUnknownProtos +
				pIfRow.dwOutDiscards);
	else
	{
		SET_MSG_RESULT(result, zbx_strdup(NULL, "Invalid second parameter."));
		return SYSINFO_RET_FAIL;
	}

	return SYSINFO_RET_OK;
}
コード例 #4
0
ファイル: net.c プロジェクト: aries4/MIRACLE-ZBX-2.0.3-NoSQL
int	NET_IF_TOTAL(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result)
{
	char		if_name[MAX_STRING_LEN], mode[32];
	MIB_IFROW	pIfRow;

	if (num_param(param) > 2)
		return SYSINFO_RET_FAIL;

	if (0 != get_param(param, 1, if_name, sizeof(if_name)))
		return SYSINFO_RET_FAIL;

	if (0 != get_param(param, 2, mode, sizeof(mode)))
		*mode = '\0';

	if (FAIL == get_if_stats(if_name, &pIfRow))
		return SYSINFO_RET_FAIL;

	if ('\0' == *mode || 0 == strcmp(mode, "bytes"))	/* default parameter */
	{
		SET_UI64_RESULT(result, pIfRow.dwInOctets + pIfRow.dwOutOctets);
	}
	else if (0 == strcmp(mode, "packets"))
	{
		SET_UI64_RESULT(result, pIfRow.dwInUcastPkts + pIfRow.dwInNUcastPkts +
				pIfRow.dwOutUcastPkts + pIfRow.dwOutNUcastPkts);
	}
	else if (0 == strcmp(mode, "errors"))
	{
		SET_UI64_RESULT(result, pIfRow.dwInErrors + pIfRow.dwOutErrors);
	}
	else if (0 == strcmp(mode, "dropped"))
	{
		SET_UI64_RESULT(result, pIfRow.dwInDiscards + pIfRow.dwInUnknownProtos +
				pIfRow.dwOutDiscards);
	}
	else
		return SYSINFO_RET_FAIL;

	return SYSINFO_RET_OK;
}