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; }
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; }
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; }
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; }