int SYSTEM_SWAP_OUT(AGENT_REQUEST *request, AGENT_RESULT *result) { char *swapdev, *mode; zbx_uint64_t value = 0; if (2 < request->nparam) return SYSINFO_RET_FAIL; swapdev = get_rparam(request, 0); mode = get_rparam(request, 1); /* the only supported parameter */ if (NULL != swapdev && '\0' != *swapdev && 0 != strcmp(swapdev, "all")) return SYSINFO_RET_FAIL; /* default parameter */ if (NULL == mode || '\0' == *mode || 0 == strcmp(mode, "count")) { if (SYSINFO_RET_OK != get_swap_io(NULL, NULL, &value, NULL)) return SYSINFO_RET_FAIL; } else if (0 == strcmp(mode, "pages")) { if (SYSINFO_RET_OK != get_swap_io(NULL, NULL, NULL, &value)) return SYSINFO_RET_FAIL; } else return SYSINFO_RET_FAIL; SET_UI64_RESULT(result, value); return SYSINFO_RET_OK; }
int SYSTEM_SWAP_OUT(const char *cmd, const char *param, unsigned flags, AGENT_RESULT *result) { int ret = SYSINFO_RET_FAIL; char swapdev[MAX_STRING_LEN]; char mode[MAX_STRING_LEN]; double value = 0; if(num_param(param) > 2) { return SYSINFO_RET_FAIL; } if(get_param(param, 1, swapdev, sizeof(swapdev)) != 0) { return SYSINFO_RET_FAIL; } if(swapdev[0] == '\0') { /* default parameter */ zbx_snprintf(swapdev, sizeof(swapdev), "all"); } if(strncmp(swapdev, "all", sizeof(swapdev))) { return SYSINFO_RET_FAIL; } if(get_param(param, 2, mode, sizeof(mode)) != 0) { mode[0] = '\0'; } if(mode[0] == '\0') { zbx_snprintf(mode, sizeof(mode), "count"); } if(strcmp(mode,"count") == 0) { ret = get_swap_io(NULL, NULL, &value, NULL); } else if(strcmp(mode,"pages") == 0) { ret = get_swap_io(NULL, NULL, NULL, &value); } else { return SYSINFO_RET_FAIL; } if(ret != SYSINFO_RET_OK) return ret; SET_UI64_RESULT(result, value); return ret; }
int SYSTEM_SWAP_OUT(AGENT_REQUEST *request, AGENT_RESULT *result) { int ret; char *swapdev, *mode, *error; zbx_uint64_t value; if (2 < request->nparam) { SET_MSG_RESULT(result, zbx_strdup(NULL, "Too many parameters.")); return SYSINFO_RET_FAIL; } swapdev = get_rparam(request, 0); mode = get_rparam(request, 1); /* the only supported parameter */ if (NULL != swapdev && '\0' != *swapdev && 0 != strcmp(swapdev, "all")) { SET_MSG_RESULT(result, zbx_strdup(NULL, "Invalid first parameter.")); return SYSINFO_RET_FAIL; } /* default parameter */ if (NULL == mode || '\0' == *mode || 0 == strcmp(mode, "count")) { ret = get_swap_io(NULL, NULL, &value, NULL, &error); } else if (0 == strcmp(mode, "pages")) { ret = get_swap_io(NULL, NULL, NULL, &value, &error); } else { SET_MSG_RESULT(result, zbx_strdup(NULL, "Invalid second parameter.")); return SYSINFO_RET_FAIL; } if (SYSINFO_RET_OK == ret) SET_UI64_RESULT(result, value); else SET_MSG_RESULT(result, error); return ret; }
int SYSTEM_SWAP_OUT(AGENT_REQUEST *request, AGENT_RESULT *result) { int ret; char *tmp, *error; zbx_uint64_t value = 0; if (2 < request->nparam) { SET_MSG_RESULT(result, zbx_strdup(NULL, "Too many parameters.")); return SYSINFO_RET_FAIL; } tmp = get_rparam(request, 0); if (NULL != tmp && '\0' != *tmp && 0 != strcmp(tmp, "all")) { SET_MSG_RESULT(result, zbx_strdup(NULL, "Invalid first parameter.")); return SYSINFO_RET_FAIL; } tmp = get_rparam(request, 1); if (NULL == tmp || '\0' == *tmp || 0 == strcmp(tmp, "count")) ret = get_swap_io(NULL, NULL, &value, NULL, &error); else if (0 == strcmp(tmp, "pages")) ret = get_swap_io(NULL, NULL, NULL, &value, &error); else { SET_MSG_RESULT(result, zbx_strdup(NULL, "Invalid second parameter.")); return SYSINFO_RET_FAIL; } if (SYSINFO_RET_OK == ret) SET_UI64_RESULT(result, value); else SET_MSG_RESULT(result, error); return SYSINFO_RET_OK; }