static void KeepPromises(Policy *policy, const ReportContext *report_context) { Constraint *cp; Rval retval; for (cp = ControlBodyConstraints(policy, cf_monitor); cp != NULL; cp = cp->next) { if (IsExcluded(cp->classes, NULL)) { continue; } if (GetVariable("control_monitor", cp->lval, &retval) == cf_notype) { CfOut(cf_error, "", "Unknown lval %s in monitor control body", cp->lval); continue; } if (strcmp(cp->lval, CFM_CONTROLBODY[cfm_histograms].lval) == 0) { /* Keep accepting this option for backward compatibility. */ } if (strcmp(cp->lval, CFM_CONTROLBODY[cfm_tcpdump].lval) == 0) { MonNetworkSnifferEnable(GetBoolean(retval.item)); } if (strcmp(cp->lval, CFM_CONTROLBODY[cfm_forgetrate].lval) == 0) { sscanf(retval.item, "%lf", &FORGETRATE); CfDebug("forget rate = %f\n", FORGETRATE); } } }
static void KeepPromises(EvalContext *ctx, const Policy *policy) { Rval retval; Seq *constraints = ControlBodyConstraints(policy, AGENT_TYPE_MONITOR); if (constraints) { for (size_t i = 0; i < SeqLength(constraints); i++) { Constraint *cp = SeqAt(constraints, i); if (!IsDefinedClass(ctx, cp->classes, NULL)) { continue; } VarRef *ref = VarRefParseFromScope(cp->lval, "control_monitor"); if (!EvalContextVariableGet(ctx, ref, &retval, NULL)) { Log(LOG_LEVEL_ERR, "Unknown lval '%s' in monitor control body", cp->lval); VarRefDestroy(ref); continue; } VarRefDestroy(ref); if (strcmp(cp->lval, CFM_CONTROLBODY[MONITOR_CONTROL_HISTOGRAMS].lval) == 0) { /* Keep accepting this option for backward compatibility. */ } if (strcmp(cp->lval, CFM_CONTROLBODY[MONITOR_CONTROL_TCP_DUMP].lval) == 0) { MonNetworkSnifferEnable(BooleanFromString(retval.item)); } if (strcmp(cp->lval, CFM_CONTROLBODY[MONITOR_CONTROL_FORGET_RATE].lval) == 0) { sscanf(retval.item, "%lf", &FORGETRATE); Log(LOG_LEVEL_DEBUG, "forget rate %f", FORGETRATE); } } } }
static void KeepPromises(EvalContext *ctx, Policy *policy) { Rval retval; Seq *constraints = ControlBodyConstraints(policy, AGENT_TYPE_MONITOR); if (constraints) { for (size_t i = 0; i < SeqLength(constraints); i++) { Constraint *cp = SeqAt(constraints, i); if (!IsDefinedClass(ctx, cp->classes, NULL)) { continue; } if (!EvalContextVariableGet(ctx, (VarRef) { NULL, "control_monitor", cp->lval }, &retval, NULL)) { CfOut(OUTPUT_LEVEL_ERROR, "", "Unknown lval %s in monitor control body", cp->lval); continue; } if (strcmp(cp->lval, CFM_CONTROLBODY[MONITOR_CONTROL_HISTOGRAMS].lval) == 0) { /* Keep accepting this option for backward compatibility. */ } if (strcmp(cp->lval, CFM_CONTROLBODY[MONITOR_CONTROL_TCP_DUMP].lval) == 0) { MonNetworkSnifferEnable(BooleanFromString(retval.item)); } if (strcmp(cp->lval, CFM_CONTROLBODY[MONITOR_CONTROL_FORGET_RATE].lval) == 0) { sscanf(retval.item, "%lf", &FORGETRATE); CfDebug("forget rate = %f\n", FORGETRATE); } } } }
static GenericAgentConfig *CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig *config = GenericAgentConfigNewDefault(AGENT_TYPE_MONITOR); while ((c = getopt_long(argc, argv, "dvnIf:VSxHTKMFhlC::", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'l': LEGACY_OUTPUT = true; break; case 'f': GenericAgentConfigSetInputFile(config, GetWorkDir(), optarg); MINUSF = true; break; case 'd': LogSetGlobalLevel(LOG_LEVEL_DEBUG); NO_FORK = true; break; case 'K': IGNORELOCK = true; break; case 'I': LogSetGlobalLevel(LOG_LEVEL_INFO); break; case 'v': LogSetGlobalLevel(LOG_LEVEL_VERBOSE); NO_FORK = true; break; case 'F': NO_FORK = true; break; case 'H': /* Keep accepting this option for compatibility -- no longer used */ break; case 'T': MonNetworkSnifferEnable(true); break; case 'V': PrintVersion(); exit(0); case 'h': PrintHelp("cf-monitord", OPTIONS, HINTS, true); exit(0); case 'M': { Writer *out = FileWriter(stdout); ManPageWrite(out, "cf-monitord", time(NULL), CF_MONITORD_SHORT_DESCRIPTION, CF_MONITORD_MANPAGE_LONG_DESCRIPTION, OPTIONS, HINTS, true); FileWriterDetach(out); exit(EXIT_SUCCESS); } case 'x': Log(LOG_LEVEL_ERR, "Self-diagnostic functionality is retired."); exit(0); case 'C': if (!GenericAgentConfigParseColor(config, optarg)) { exit(EXIT_FAILURE); } break; default: PrintHelp("cf-monitord", OPTIONS, HINTS, true); exit(1); } } if (!GenericAgentConfigParseArguments(config, argc - optind, argv + optind)) { Log(LOG_LEVEL_ERR, "Too many arguments"); exit(EXIT_FAILURE); } return config; }
static GenericAgentConfig *CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig *config = GenericAgentConfigNewDefault(AGENT_TYPE_MONITOR); while ((c = getopt_long(argc, argv, "dvnIf:VSxHTKMFh", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': GenericAgentConfigSetInputFile(config, optarg); MINUSF = true; break; case 'd': config->debug_mode = true; NO_FORK = true; break; case 'K': IGNORELOCK = true; break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; NO_FORK = true; break; case 'F': NO_FORK = true; break; case 'H': /* Keep accepting this option for compatibility -- no longer used */ break; case 'T': MonNetworkSnifferEnable(true); break; case 'V': PrintVersionBanner("cf-monitord"); exit(0); case 'h': Syntax("cf-monitord - cfengine's monitoring agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-monitord - cfengine's monitoring agent", OPTIONS, HINTS, ID); exit(0); case 'x': CfOut(OUTPUT_LEVEL_ERROR, "", "Self-diagnostic functionality is retired."); exit(0); default: Syntax("cf-monitord - cfengine's monitoring agent", OPTIONS, HINTS, ID); exit(1); } } CfDebug("Set debugging\n"); return config; }
static GenericAgentConfig *CheckOpts(int argc, char **argv) { extern char *optarg; int c; GenericAgentConfig *config = GenericAgentConfigNewDefault(AGENT_TYPE_MONITOR, GetTTYInteractive()); while ((c = getopt_long(argc, argv, "dvnIf:g:VSxHTKMFhC::l", OPTIONS, NULL)) != -1) { switch (c) { case 'f': GenericAgentConfigSetInputFile(config, GetInputDir(), optarg); MINUSF = true; break; case 'd': LogSetGlobalLevel(LOG_LEVEL_DEBUG); NO_FORK = true; break; case 'K': config->ignore_locks = true; break; case 'I': LogSetGlobalLevel(LOG_LEVEL_INFO); break; case 'v': LogSetGlobalLevel(LOG_LEVEL_VERBOSE); NO_FORK = true; break; case 'g': LogSetGlobalLevelArgOrExit(optarg); break; case 'F': NO_FORK = true; break; case 'H': /* Keep accepting this option for compatibility -- no longer used */ break; case 'T': MonNetworkSnifferEnable(true); break; case 'V': { Writer *w = FileWriter(stdout); GenericAgentWriteVersion(w); FileWriterDetach(w); } DoCleanupAndExit(EXIT_SUCCESS); case 'h': { Writer *w = FileWriter(stdout); WriterWriteHelp(w, "cf-monitord", OPTIONS, HINTS, true, NULL); FileWriterDetach(w); } DoCleanupAndExit(EXIT_SUCCESS); case 'M': { Writer *out = FileWriter(stdout); ManPageWrite(out, "cf-monitord", time(NULL), CF_MONITORD_SHORT_DESCRIPTION, CF_MONITORD_MANPAGE_LONG_DESCRIPTION, OPTIONS, HINTS, true); FileWriterDetach(out); DoCleanupAndExit(EXIT_SUCCESS); } case 'x': Log(LOG_LEVEL_ERR, "Self-diagnostic functionality is retired."); DoCleanupAndExit(EXIT_SUCCESS); case 'C': if (!GenericAgentConfigParseColor(config, optarg)) { DoCleanupAndExit(EXIT_FAILURE); } break; case 'l': LoggingEnableTimestamps(true); break; default: { Writer *w = FileWriter(stdout); WriterWriteHelp(w, "cf-monitord", OPTIONS, HINTS, true, NULL); FileWriterDetach(w); } DoCleanupAndExit(EXIT_FAILURE); } } if (!GenericAgentConfigParseArguments(config, argc - optind, argv + optind)) { Log(LOG_LEVEL_ERR, "Too many arguments"); DoCleanupAndExit(EXIT_FAILURE); } return config; }
static GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig config = GenericAgentDefaultConfig(cf_monitor); while ((c = getopt_long(argc, argv, "dvnIf:VSxHTKMFh", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': SetInputFile(optarg); MINUSF = true; break; case 'd': HardClass("opt_debug"); DEBUG = true; NO_FORK = true; break; case 'K': IGNORELOCK = true; break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; NO_FORK = true; break; case 'F': NO_FORK = true; break; case 'H': /* Keep accepting this option for compatibility -- no longer used */ break; case 'T': MonNetworkSnifferEnable(true); break; case 'V': PrintVersionBanner("cf-monitord"); exit(0); case 'h': Syntax("cf-monitord - cfengine's monitoring agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-monitord - cfengine's monitoring agent", OPTIONS, HINTS, ID); exit(0); case 'x': SelfDiagnostic(); exit(0); default: Syntax("cf-monitord - cfengine's monitoring agent", OPTIONS, HINTS, ID); exit(1); } } CfDebug("Set debugging\n"); return config; }