int NET_IF_IN(AGENT_REQUEST *request, AGENT_RESULT *result) { char *if_name, *mode, *error; 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 (SYSINFO_RET_FAIL == get_ifmib_general(if_name, &error)) { SET_MSG_RESULT(result, error); return SYSINFO_RET_FAIL; } if (NULL == mode || '\0' == *mode || 0 == strcmp(mode, "bytes")) /* default parameter */ SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_ibytes); else if (0 == strcmp(mode, "packets")) SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_ipackets); else if (0 == strcmp(mode, "errors")) SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_ierrors); else if (0 == strcmp(mode, "dropped")) SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_iqdrops); else { SET_MSG_RESULT(result, zbx_strdup(NULL, "Invalid second parameter.")); return SYSINFO_RET_FAIL; } return SYSINFO_RET_OK; }
int NET_IF_OUT(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result) { char if_name[MAX_STRING_LEN], mode[32]; if (2 < num_param(param)) 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_ifmib_general(if_name)) return SYSINFO_RET_FAIL; if ('\0' == *mode || 0 == strcmp(mode, "bytes")) /* default parameter */ SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_obytes); else if (0 == strcmp(mode, "packets")) SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_opackets); else if (0 == strcmp(mode, "errors")) SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_oerrors); else return SYSINFO_RET_FAIL; return SYSINFO_RET_OK; }
int NET_IF_COLLISIONS(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result) { char if_name[MAX_STRING_LEN]; if (1 < num_param(param)) return SYSINFO_RET_FAIL; if (0 != get_param(param, 1, if_name, sizeof(if_name))) return SYSINFO_RET_FAIL; if (FAIL == get_ifmib_general(if_name)) return SYSINFO_RET_FAIL; SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_collisions); return SYSINFO_RET_OK; }
int NET_IF_IN(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result) { char if_name[MAX_STRING_LEN], mode[32]; assert(result); init_result(result); 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_ifmib_general(if_name)) return SYSINFO_RET_FAIL; if ('\0' == *mode || 0 == strcmp(mode, "bytes")) /* default parameter */ { SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_ibytes); } else if (0 == strcmp(mode, "packets")) { SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_ipackets); } else if (0 == strcmp(mode, "errors")) { SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_ierrors); } else if (0 == strcmp(mode, "dropped")) { SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_iqdrops); } else return SYSINFO_RET_FAIL; return SYSINFO_RET_OK; }
int NET_IF_COLLISIONS(AGENT_REQUEST *request, AGENT_RESULT *result) { char *if_name, *error; if (1 < request->nparam) { SET_MSG_RESULT(result, zbx_strdup(NULL, "Too many parameters.")); return SYSINFO_RET_FAIL; } if_name = get_rparam(request, 0); if (SYSINFO_RET_FAIL == get_ifmib_general(if_name, &error)) { SET_MSG_RESULT(result, error); return SYSINFO_RET_FAIL; } SET_UI64_RESULT(result, ifmd.ifmd_data.ifi_collisions); return SYSINFO_RET_OK; }