void CheckOpts(int argc,char **argv) { extern char *optarg; int optindex = 0; int c; while ((c=getopt_long(argc,argv,"d:vf:VMsr:",OPTIONS,&optindex)) != EOF) { switch ((char) c) { case 'f': snprintf(CFPRIVKEYFILE,CF_BUFSIZE,"%s.priv",optarg); snprintf(CFPUBKEYFILE,CF_BUFSIZE,"%s.pub",optarg); break; case 'd': switch ((optarg==NULL) ? '3' : *optarg) { case '1': D1 = true; DEBUG = true; break; case '2': D2 = true; DEBUG = true; break; default: DEBUG = true; break; } break; case 'V': PrintVersionBanner("cf-key"); exit(0); case 'v': VERBOSE = true; break; case 's': SHOWHOSTS = true; break; case 'r': REMOVEKEYS = true; remove_keys_host = optarg; break; case 'h': Syntax("cf-key - cfengine's key generator",OPTIONS,HINTS,ID); exit(0); case 'M': ManPage("cf-key - cfengine's key generator",OPTIONS,HINTS,ID); exit(0); default: Syntax("cf-key - cfengine's key generator",OPTIONS,HINTS,ID); exit(1); } } }
static GenericAgentConfig *CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig *config = GenericAgentConfigNewDefault(AGENT_TYPE_KEYGEN); while ((c = getopt_long(argc, argv, "dvf:VMsr:hl:", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': snprintf(CFPRIVKEYFILE, CF_BUFSIZE, "%s.priv", optarg); snprintf(CFPUBKEYFILE, CF_BUFSIZE, "%s.pub", optarg); break; case 'd': DEBUG = true; break; case 'V': PrintVersionBanner("cf-key"); exit(0); case 'v': VERBOSE = true; break; case 's': SHOWHOSTS = true; break; case 'r': REMOVEKEYS = true; remove_keys_host = optarg; break; case 'l': LICENSE_INSTALL = true; strlcpy(LICENSE_SOURCE, optarg, sizeof(LICENSE_SOURCE)); break; case 'h': Syntax("cf-key - CFEngine's key generator", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-key - CFEngine's key generator", OPTIONS, HINTS, ID); exit(0); default: Syntax("cf-key - CFEngine's key generator", OPTIONS, HINTS, ID); exit(1); } } return config; }
static GenericAgentConfig *CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig *config = GenericAgentConfigNewDefault(AGENT_TYPE_RUNAGENT); DEFINECLASSES[0] = '\0'; SENDCLASSES[0] = '\0'; while ((c = getopt_long(argc, argv, "t:q:db:vnKhIif:D:VSxo:s:MH:", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': GenericAgentConfigSetInputFile(config, optarg); MINUSF = true; break; case 'b': BACKGROUND = true; if (optarg) { MAXCHILD = atoi(optarg); } break; case 'd': HardClass("opt_debug"); DEBUG = true; break; case 'q': if (optarg == NULL) { strcpy(MENU, "delta"); } else { strncpy(MENU, optarg, CF_MAXVARSIZE); } break; case 'K': IGNORELOCK = true; break; case 's': strncpy(SENDCLASSES, optarg, CF_MAXVARSIZE); if (strlen(optarg) > CF_MAXVARSIZE) { FatalError("Argument too long\n"); } break; case 'D': strncpy(DEFINECLASSES, optarg, CF_MAXVARSIZE); if (strlen(optarg) > CF_MAXVARSIZE) { FatalError("Argument too long\n"); } break; case 'H': HOSTLIST = SplitStringAsRList(optarg, ','); break; case 'o': strncpy(REMOTE_AGENT_OPTIONS, optarg, CF_MAXVARSIZE); break; case 'I': INFORM = true; break; case 'i': INTERACTIVE = true; break; case 'v': VERBOSE = true; break; case 'n': DONTDO = true; IGNORELOCK = true; HardClass("opt_dry_run"); break; case 't': CONNTIMEOUT = atoi(optarg); break; case 'V': PrintVersionBanner("cf-runagent"); exit(0); case 'h': Syntax("cf-runagent - Run agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-runagent - Run agent", OPTIONS, HINTS, ID); exit(0); case 'x': SelfDiagnostic(); exit(0); default: Syntax("cf-runagent - Run agent", OPTIONS, HINTS, ID); exit(1); } } CfDebug("Set debugging\n"); return config; }
GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig config = GenericAgentDefaultConfig(cf_common); while ((c = getopt_long(argc, argv, "advnIf:D:N:VSrxMb:pg:h", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && strlen(optarg) < 5) { FatalError(" -f used but argument \"%s\" incorrect", optarg); } SetInputFile(optarg); MINUSF = true; break; case 'd': NewClass("opt_debug"); DEBUG = true; break; case 'b': if (optarg) { config.bundlesequence = SplitStringAsRList(optarg, ','); CBUNDLESEQUENCE_STR = optarg; } break; case 'K': IGNORELOCK = true; break; case 'D': NewClassesFromString(optarg); break; case 'N': NegateClassesFromString(optarg); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; break; case 'n': DONTDO = true; IGNORELOCK = true; LOOKUP = true; NewClass("opt_dry_run"); break; case 'V': PrintVersionBanner("cf-promises"); exit(0); case 'h': Syntax("cf-promises - cfengine's promise analyzer", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-promises - cfengine's promise analyzer", OPTIONS, HINTS, ID); exit(0); case 'r': PrependRScalar(&GOALS, "goal.*", CF_SCALAR); SHOWREPORTS = true; break; case 'x': SelfDiagnostic(); exit(0); case 'a': printf("Self-analysis is not yet implemented.\n"); exit(0); break; /* case 'p': SHOW_PARSE_TREE = true; break; */ case 'g': USE_GCC_BRIEF_FORMAT = true; break; default: Syntax("cf-promises - cfengine's promise analyzer", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(cf_error, "", "Unexpected argument with no preceding option: %s\n", argv[optind]); } CfDebug("Set debugging\n"); return config; }
GenericAgentConfig *CheckOpts(int argc, char **argv) { extern char *optarg; char ld_library_path[CF_BUFSIZE]; int optindex = 0; int c; GenericAgentConfig *config = GenericAgentConfigNewDefault(AGENT_TYPE_SERVER); while ((c = getopt_long(argc, argv, "dvIKf:D:N:VSxLFMhA", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && (strlen(optarg) < 5)) { FatalError(" -f used but argument \"%s\" incorrect", optarg); } GenericAgentConfigSetInputFile(config, optarg); MINUSF = true; break; case 'd': DEBUG = true; NO_FORK = true; case 'K': IGNORELOCK = true; break; case 'D': NewClassesFromString(optarg); break; case 'N': NegateClassesFromString(optarg); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; NO_FORK = true; break; case 'F': NO_FORK = true; break; case 'L': CfOut(cf_verbose, "", "Setting LD_LIBRARY_PATH=%s\n", optarg); snprintf(ld_library_path, CF_BUFSIZE - 1, "LD_LIBRARY_PATH=%s", optarg); putenv(ld_library_path); break; case 'V': PrintVersionBanner("cf-serverd"); exit(0); case 'h': Syntax("cf-serverd - cfengine's server agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-serverd - cfengine's server agent", OPTIONS, HINTS, ID); exit(0); case 'x': CfOut(cf_error, "", "Self-diagnostic functionality is retired."); exit(0); case 'A': #ifdef HAVE_AVAHI_CLIENT_CLIENT_H #ifdef HAVE_AVAHI_COMMON_ADDRESS_H printf("Generating Avahi configuration file.\n"); if (GenerateAvahiConfig("/etc/avahi/services/cfengine-hub.service") != 0) { exit(1); } cf_popen("/etc/init.d/avahi-daemon restart", "r"); printf("Avahi configuration file generated successfuly.\n"); exit(0); #else printf("This option can only be used when avahi-daemon and libavahi are installed on the machine.\n"); #endif #endif default: Syntax("cf-serverd - cfengine's server agent", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(cf_error, "", "Unexpected argument with no preceding option: %s\n", argv[optind]); FatalError("Aborted"); } CfDebug("Set debugging\n"); return config; }
void CheckOpts(int argc,char **argv) { extern char *optarg; int optindex = 0; int c; DEFINECLASSES[0] = '\0'; SENDCLASSES[0] = '\0'; while ((c=getopt_long(argc,argv,"t:q:d:b:vnKhIif:D:VSxo:s:MH:",OPTIONS,&optindex)) != EOF) { switch ((char) c) { case 'f': strncpy(VINPUTFILE,optarg,CF_BUFSIZE-1); VINPUTFILE[CF_BUFSIZE-1] = '\0'; MINUSF = true; break; case 'b': BACKGROUND = true; if (optarg) { MAXCHILD = atoi(optarg); } break; case 'd': NewClass("opt_debug"); switch ((optarg==NULL) ? '3' : *optarg) { case '1': D1 = true; DEBUG = true; break; case '2': D2 = true; DEBUG = true; break; default: DEBUG = true; break; } break; case 'q': if (optarg==NULL) { strcpy(MENU,"delta"); } else { strncpy(MENU,optarg,CF_MAXVARSIZE); } break; case 'K': IGNORELOCK = true; break; case 's': strncpy(SENDCLASSES,optarg,CF_MAXVARSIZE); if (strlen(optarg) > CF_MAXVARSIZE) { FatalError("Argument too long\n"); } break; case 'D': strncpy(DEFINECLASSES,optarg,CF_MAXVARSIZE); if (strlen(optarg) > CF_MAXVARSIZE) { FatalError("Argument too long\n"); } break; case 'H': HOSTLIST = SplitStringAsRList(optarg,','); break; case 'o': strncpy(REMOTE_AGENT_OPTIONS,optarg,CF_MAXVARSIZE); break; case 'I': INFORM = true; break; case 'i': INTERACTIVE = true; break; case 'v': VERBOSE = true; break; case 'n': DONTDO = true; IGNORELOCK = true; NewClass("opt_dry_run"); break; case 't': CONNTIMEOUT = atoi(optarg); break; case 'V': PrintVersionBanner("cf-runagent"); exit(0); case 'h': Syntax("cf-runagent - Run agent",OPTIONS,HINTS,ID); exit(0); case 'M': ManPage("cf-runagent - Run agent",OPTIONS,HINTS,ID); exit(0); case 'x': SelfDiagnostic(); exit(0); default: Syntax("cf-runagent - Run agent",OPTIONS,HINTS,ID); exit(1); } } Debug("Set debugging\n"); }
GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; char ld_library_path[CF_BUFSIZE]; int optindex = 0; int c; GenericAgentConfig config = GenericAgentDefaultConfig(cf_server); while ((c = getopt_long(argc, argv, "dvIKf:D:N:VSxLFMh", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && (strlen(optarg) < 5)) { FatalError(" -f used but argument \"%s\" incorrect", optarg); } SetInputFile(optarg); MINUSF = true; break; case 'd': DEBUG = true; NO_FORK = true; case 'K': IGNORELOCK = true; break; case 'D': NewClassesFromString(optarg); break; case 'N': NegateClassesFromString(optarg); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; NO_FORK = true; break; case 'F': NO_FORK = true; break; case 'L': CfOut(cf_verbose, "", "Setting LD_LIBRARY_PATH=%s\n", optarg); snprintf(ld_library_path, CF_BUFSIZE - 1, "LD_LIBRARY_PATH=%s", optarg); putenv(ld_library_path); break; case 'V': PrintVersionBanner("cf-serverd"); exit(0); case 'h': Syntax("cf-serverd - cfengine's server agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-serverd - cfengine's server agent", OPTIONS, HINTS, ID); exit(0); case 'x': SelfDiagnostic(); exit(0); default: Syntax("cf-serverd - cfengine's server agent", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(cf_error, "", "Unexpected argument with no preceding option: %s\n", argv[optind]); FatalError("Aborted"); } CfDebug("Set debugging\n"); 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; }
GenericAgentConfig *CheckOpts(int argc, char **argv) { extern char *optarg; char ld_library_path[CF_BUFSIZE]; int optindex = 0; int c; GenericAgentConfig *config = GenericAgentConfigNewDefault(AGENT_TYPE_SERVER); while ((c = getopt_long(argc, argv, "dvIKf:D:N:VSxLFMhA", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && (strlen(optarg) < 5)) { CfOut(OUTPUT_LEVEL_ERROR, "", " -f used but argument \"%s\" incorrect", optarg); exit(EXIT_FAILURE); } GenericAgentConfigSetInputFile(config, GetWorkDir(), optarg); MINUSF = true; break; case 'd': config->debug_mode = true; NO_FORK = true; case 'K': IGNORELOCK = true; break; case 'D': config->heap_soft = StringSetFromString(optarg, ','); break; case 'N': config->heap_negated = StringSetFromString(optarg, ','); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; NO_FORK = true; break; case 'F': NO_FORK = true; break; case 'L': CfOut(OUTPUT_LEVEL_VERBOSE, "", "Setting LD_LIBRARY_PATH=%s\n", optarg); snprintf(ld_library_path, CF_BUFSIZE - 1, "LD_LIBRARY_PATH=%s", optarg); putenv(ld_library_path); break; case 'V': PrintVersion(); exit(0); case 'h': Syntax("cf-serverd", OPTIONS, HINTS, ID, true); exit(0); case 'M': ManPage("cf-serverd - CFEngine's server agent", OPTIONS, HINTS, ID); exit(0); case 'x': CfOut(OUTPUT_LEVEL_ERROR, "", "Self-diagnostic functionality is retired."); exit(0); case 'A': #ifdef HAVE_AVAHI_CLIENT_CLIENT_H #ifdef HAVE_AVAHI_COMMON_ADDRESS_H printf("Generating Avahi configuration file.\n"); if (GenerateAvahiConfig("/etc/avahi/services/cfengine-hub.service") != 0) { exit(1); } cf_popen("/etc/init.d/avahi-daemon restart", "r", true); printf("Avahi configuration file generated successfuly.\n"); exit(0); #else printf("This option can only be used when avahi-daemon and libavahi are installed on the machine.\n"); #endif #endif default: Syntax("cf-serverd", OPTIONS, HINTS, ID, 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(EvalContext *ctx, int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig *config = GenericAgentConfigNewDefault(AGENT_TYPE_RUNAGENT); DEFINECLASSES[0] = '\0'; SENDCLASSES[0] = '\0'; while ((c = getopt_long(argc, argv, "t:q:db:vnKhIif:D:VSxo:s:MH:", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': GenericAgentConfigSetInputFile(config, optarg); MINUSF = true; break; case 'b': BACKGROUND = true; if (optarg) { MAXCHILD = atoi(optarg); } break; case 'd': config->debug_mode = true; break; case 'K': IGNORELOCK = true; break; case 's': strncpy(SENDCLASSES, optarg, CF_MAXVARSIZE); if (strlen(optarg) > CF_MAXVARSIZE) { CfOut(OUTPUT_LEVEL_ERROR, "", "Argument too long\n"); exit(EXIT_FAILURE); } break; case 'D': strncpy(DEFINECLASSES, optarg, CF_MAXVARSIZE); if (strlen(optarg) > CF_MAXVARSIZE) { CfOut(OUTPUT_LEVEL_ERROR, "", "Argument too long\n"); exit(EXIT_FAILURE); } break; case 'H': HOSTLIST = RlistFromSplitString(optarg, ','); break; case 'o': strncpy(REMOTE_AGENT_OPTIONS, optarg, CF_MAXVARSIZE); break; case 'I': INFORM = true; break; case 'i': INTERACTIVE = true; break; case 'v': VERBOSE = true; break; case 'n': DONTDO = true; IGNORELOCK = true; EvalContextHeapAddHard(ctx, "opt_dry_run"); break; case 't': CONNTIMEOUT = atoi(optarg); break; case 'V': PrintVersion(); exit(0); case 'h': Syntax("cf-runagent - Run agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-runagent - Run agent", OPTIONS, HINTS, ID); exit(0); case 'x': CfOut(OUTPUT_LEVEL_ERROR, "", "Self-diagnostic functionality is retired."); exit(0); default: Syntax("cf-runagent - Run agent", OPTIONS, HINTS, ID); exit(1); } } CfDebug("Set debugging\n"); return config; }
void CheckOpts(int argc,char **argv) { extern char *optarg; char arg[CF_BUFSIZE],*sp; int optindex = 0; int c,alpha = false,v6 = false; /* Because of the MacOS linker we have to call this from each agent individually before Generic Initialize */ POLICY_SERVER[0] = '\0'; while ((c=getopt_long(argc,argv,"rd:vnKIf:D:N:Vs:x:MBb:",OPTIONS,&optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg == NULL) { FatalError(" -f used but no argument"); } if (optarg && strlen(optarg) < 5) { snprintf(arg,CF_MAXVARSIZE," -f used but argument \"%s\" incorrect",optarg); FatalError(arg); } strncpy(VINPUTFILE,optarg,CF_BUFSIZE-1); MINUSF = true; break; case 'b': if (optarg) { CBUNDLESEQUENCE = SplitStringAsRList(optarg,','); CBUNDLESEQUENCE_STR = optarg; } break; case 'd': NewClass("opt_debug"); switch ((optarg==NULL) ? '3' : *optarg) { case '1': D1 = true; DEBUG = true; break; case '2': D2 = true; DEBUG = true; break; default: DEBUG = true; break; } break; case 'B': BOOTSTRAP = true; MINUSF = true; IGNORELOCK = true; NewClass("bootstrap_mode"); break; case 's': // temporary assure that network functions are working OpenNetwork(); strncpy(POLICY_SERVER,Hostname2IPString(optarg),CF_BUFSIZE-1); CloseNetwork(); for (sp = POLICY_SERVER; *sp != '\0'; sp++) { if (isalpha(*sp)) { alpha = true; } if (ispunct(*sp) && *sp != ':' && *sp != '.') { alpha = true; } if (*sp == ':') { v6 = true; } } if (alpha && !v6) { FatalError("Error specifying policy server. The policy server's IP address could not be looked up. Please use the IP address instead if there is no error."); } break; case 'K': IGNORELOCK = true; break; case 'D': NewClassesFromString(optarg); break; case 'N': NegateClassesFromString(optarg,&VNEGHEAP); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; break; case 'n': DONTDO = true; IGNORELOCK = true; NewClass("opt_dry_run"); break; case 'V': PrintVersionBanner("cf-agent"); exit(0); case 'h': Syntax("cf-agent - cfengine's change agent",OPTIONS,HINTS,ID); exit(0); case 'M': ManPage("cf-agent - cfengine's change agent",OPTIONS,HINTS,ID); exit(0); case 'x': AgentDiagnostic(optarg); exit(0); case 'r': SHOWREPORTS = true; break; default: Syntax("cf-agent - cfengine's change agent",OPTIONS,HINTS,ID); exit(1); } } if (argv[optind] != NULL) { CfOut(cf_error,"","Unexpected argument with no preceding option: %s\n",argv[optind]); FatalError("Aborted"); } Debug("Set debugging\n"); }
GenericAgentConfig *CheckOpts(EvalContext *ctx, int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig *config = GenericAgentConfigNewDefault(AGENT_TYPE_COMMON); while ((c = getopt_long(argc, argv, "dvnIf:D:N:VSrxMb:i:p:cg:h", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'c': config->check_runnable = true; break; case 'f': if (optarg && (strlen(optarg) < 5)) { CfOut(OUTPUT_LEVEL_ERROR, "", " -f used but argument \"%s\" incorrect", optarg); exit(EXIT_FAILURE); } GenericAgentConfigSetInputFile(config, optarg); MINUSF = true; break; case 'd': config->debug_mode = true; break; case 'b': if (optarg) { Rlist *bundlesequence = RlistFromSplitString(optarg, ','); GenericAgentConfigSetBundleSequence(config, bundlesequence); RlistDestroy(bundlesequence); CBUNDLESEQUENCE_STR = optarg; // TODO: wtf is this } break; case 'p': if (strcmp("none", optarg) == 0) { config->agent_specific.common.policy_output_format = GENERIC_AGENT_CONFIG_COMMON_POLICY_OUTPUT_FORMAT_NONE; } else if (strcmp("cf", optarg) == 0) { config->agent_specific.common.policy_output_format = GENERIC_AGENT_CONFIG_COMMON_POLICY_OUTPUT_FORMAT_CF; } else if (strcmp("json", optarg) == 0) { config->agent_specific.common.policy_output_format = GENERIC_AGENT_CONFIG_COMMON_POLICY_OUTPUT_FORMAT_JSON; } else { CfOut(OUTPUT_LEVEL_ERROR, "", "Invalid policy output format: '%s'. Possible values are 'none', 'cf', 'json'", optarg); exit(EXIT_FAILURE); } break; case 'K': IGNORELOCK = true; break; case 'D': config->heap_soft = StringSetFromString(optarg, ','); break; case 'N': config->heap_negated = StringSetFromString(optarg, ','); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; break; case 'n': DONTDO = true; IGNORELOCK = true; LOOKUP = true; EvalContextHeapAddHard(ctx, "opt_dry_run"); break; case 'V': PrintVersionBanner("cf-promises"); exit(0); case 'h': Syntax("cf-promises - cfengine's promise analyzer", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-promises - cfengine's promise analyzer", OPTIONS, HINTS, ID); exit(0); case 'r': SHOWREPORTS = true; break; case 'x': CfOut(OUTPUT_LEVEL_ERROR, "", "Self-diagnostic functionality is retired."); exit(0); default: Syntax("cf-promises - cfengine's promise analyzer", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(OUTPUT_LEVEL_ERROR, "", "Unexpected argument: %s\n", argv[optind]); } CfDebug("Set debugging\n"); return config; }
int main(int argc, char *argv[]) { GenericAgentConfig config = CheckOpts(argc, argv); ReportContext *report_context = OpenReports("executor"); Policy *policy = GenericInitialize("executor", config, report_context); ThisAgentInit(); ExecConfig exec_config = { .scheduled_run = !ONCE, .exec_command = SafeStringDuplicate(""), .mail_server = SafeStringDuplicate(""), .mail_from_address = SafeStringDuplicate(""), .mail_to_address = SafeStringDuplicate(""), .mail_max_lines = 30, .fq_name = VFQNAME, .ip_address = VIPADDRESS, .agent_expireafter = 10080, }; KeepPromises(policy, &exec_config); #ifdef MINGW if (WINSERVICE) { NovaWin_StartExecService(); } else #endif /* MINGW */ { StartServer(policy, &exec_config, report_context); } ReportContextDestroy(report_context); return 0; } /*****************************************************************************/ /* Level 1 */ /*****************************************************************************/ static GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; char ld_library_path[CF_BUFSIZE]; GenericAgentConfig config = GenericAgentDefaultConfig(AGENT_TYPE_EXECUTOR); while ((c = getopt_long(argc, argv, "dvnKIf:D:N:VxL:hFOV1gMW", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && strlen(optarg) < 5) { FatalError(" -f used but argument \"%s\" incorrect", optarg); } SetInputFile(optarg); MINUSF = true; break; case 'd': HardClass("opt_debug"); DEBUG = true; break; case 'K': IGNORELOCK = true; break; case 'D': NewClassesFromString(optarg); break; case 'N': NegateClassesFromString(optarg); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; NO_FORK = true; break; case 'n': DONTDO = true; IGNORELOCK = true; HardClass("opt_dry_run"); break; case 'L': snprintf(ld_library_path, CF_BUFSIZE - 1, "LD_LIBRARY_PATH=%s", optarg); if (putenv(xstrdup(ld_library_path)) != 0) { } break; case 'W': WINSERVICE = false; break; case 'F': NO_FORK = true; break; case 'O': ONCE = true; break; case 'V': PrintVersionBanner("cf-execd"); exit(0); case 'h': Syntax("cf-execd - cfengine's execution agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-execd - cfengine's execution agent", OPTIONS, HINTS, ID); exit(0); case 'x': SelfDiagnostic(); exit(0); default: Syntax("cf-execd - cfengine's execution agent", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(cf_error, "", "Unexpected argument with no preceding option: %s\n", argv[optind]); } return config; } /*****************************************************************************/ static void LoadDefaultSchedule(void) { CfDebug("Loading default schedule...\n"); DeleteItemList(SCHEDULE); SCHEDULE = NULL; AppendItem(&SCHEDULE, "Min00", NULL); AppendItem(&SCHEDULE, "Min05", NULL); AppendItem(&SCHEDULE, "Min10", NULL); AppendItem(&SCHEDULE, "Min15", NULL); AppendItem(&SCHEDULE, "Min20", NULL); AppendItem(&SCHEDULE, "Min25", NULL); AppendItem(&SCHEDULE, "Min30", NULL); AppendItem(&SCHEDULE, "Min35", NULL); AppendItem(&SCHEDULE, "Min40", NULL); AppendItem(&SCHEDULE, "Min45", NULL); AppendItem(&SCHEDULE, "Min50", NULL); AppendItem(&SCHEDULE, "Min55", NULL); }
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; }
int main(int argc, char *argv[]) { GenericAgentConfig *config = CheckOpts(argc, argv); ReportContext *report_context = OpenReports(config->agent_type); GenericAgentDiscoverContext(config, report_context); Policy *policy = NULL; if (GenericAgentCheckPolicy(config, report_context, false)) { policy = GenericAgentLoadPolicy(config->agent_type, config, report_context); } else if (config->tty_interactive) { FatalError("CFEngine was not able to get confirmation of promises from cf-promises, please verify input file\n"); } else { CfOut(OUTPUT_LEVEL_ERROR, "", "CFEngine was not able to get confirmation of promises from cf-promises, so going to failsafe\n"); HardClass("failsafe_fallback"); GenericAgentConfigSetInputFile(config, "failsafe.cf"); policy = GenericAgentLoadPolicy(config->agent_type, config, report_context); } CheckLicenses(); ThisAgentInit(); ExecConfig exec_config = { .scheduled_run = !ONCE, .exec_command = SafeStringDuplicate(""), .mail_server = SafeStringDuplicate(""), .mail_from_address = SafeStringDuplicate(""), .mail_to_address = SafeStringDuplicate(""), .mail_max_lines = 30, .fq_name = VFQNAME, .ip_address = VIPADDRESS, .agent_expireafter = 10080, }; KeepPromises(policy, &exec_config); #ifdef __MINGW32__ if (WINSERVICE) { NovaWin_StartExecService(); } else #endif /* __MINGW32__ */ { StartServer(policy, config, &exec_config, report_context); } ReportContextDestroy(report_context); GenericAgentConfigDestroy(config); return 0; } /*****************************************************************************/ /* Level 1 */ /*****************************************************************************/ static GenericAgentConfig *CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; char ld_library_path[CF_BUFSIZE]; GenericAgentConfig *config = GenericAgentConfigNewDefault(AGENT_TYPE_EXECUTOR); while ((c = getopt_long(argc, argv, "dvnKIf:D:N:VxL:hFOV1gMW", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && strlen(optarg) < 5) { FatalError(" -f used but argument \"%s\" incorrect", optarg); } GenericAgentConfigSetInputFile(config, optarg); MINUSF = true; break; case 'd': HardClass("opt_debug"); DEBUG = true; break; case 'K': IGNORELOCK = true; break; case 'D': NewClassesFromString(optarg); break; case 'N': NegateClassesFromString(optarg); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; NO_FORK = true; break; case 'n': DONTDO = true; IGNORELOCK = true; HardClass("opt_dry_run"); break; case 'L': snprintf(ld_library_path, CF_BUFSIZE - 1, "LD_LIBRARY_PATH=%s", optarg); if (putenv(xstrdup(ld_library_path)) != 0) { } break; case 'W': WINSERVICE = false; break; case 'F': NO_FORK = true; break; case 'O': ONCE = true; break; case 'V': PrintVersionBanner("cf-execd"); exit(0); case 'h': Syntax("cf-execd - cfengine's execution agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-execd - cfengine's execution agent", OPTIONS, HINTS, ID); exit(0); case 'x': CfOut(OUTPUT_LEVEL_ERROR, "", "Self-diagnostic functionality is retired."); exit(0); default: Syntax("cf-execd - cfengine's execution agent", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(OUTPUT_LEVEL_ERROR, "", "Unexpected argument with no preceding option: %s\n", argv[optind]); } return config; } /*****************************************************************************/ static void LoadDefaultSchedule(void) { CfDebug("Loading default schedule...\n"); DeleteItemList(SCHEDULE); SCHEDULE = NULL; AppendItem(&SCHEDULE, "Min00", NULL); AppendItem(&SCHEDULE, "Min05", NULL); AppendItem(&SCHEDULE, "Min10", NULL); AppendItem(&SCHEDULE, "Min15", NULL); AppendItem(&SCHEDULE, "Min20", NULL); AppendItem(&SCHEDULE, "Min25", NULL); AppendItem(&SCHEDULE, "Min30", NULL); AppendItem(&SCHEDULE, "Min35", NULL); AppendItem(&SCHEDULE, "Min40", NULL); AppendItem(&SCHEDULE, "Min45", NULL); AppendItem(&SCHEDULE, "Min50", NULL); AppendItem(&SCHEDULE, "Min55", NULL); }
static GenericAgentConfig *CheckOpts(int argc, char **argv) { extern char *optarg; char *sp; int optindex = 0; int c, alpha = false, v6 = false; GenericAgentConfig *config = GenericAgentConfigNewDefault(AGENT_TYPE_AGENT); /* Because of the MacOS linker we have to call this from each agent individually before Generic Initialize */ POLICY_SERVER[0] = '\0'; while ((c = getopt_long(argc, argv, "rdvnKIf:D:N:Vs:x:MBb:h", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && strlen(optarg) < 5) { FatalError(" -f used but argument \"%s\" incorrect", optarg); } GenericAgentConfigSetInputFile(config, optarg); MINUSF = true; break; case 'b': if (optarg) { config->bundlesequence = SplitStringAsRList(optarg, ','); CBUNDLESEQUENCE_STR = optarg; } break; case 'd': HardClass("opt_debug"); DEBUG = true; break; case 'B': BOOTSTRAP = true; MINUSF = true; GenericAgentConfigSetInputFile(config, "promises.cf"); IGNORELOCK = true; HardClass("bootstrap_mode"); break; case 's': if(IsLoopbackAddress(optarg)) { FatalError("Use a non-loopback address when bootstrapping"); } // temporary assure that network functions are working OpenNetwork(); strncpy(POLICY_SERVER, Hostname2IPString(optarg), CF_BUFSIZE - 1); CloseNetwork(); for (sp = POLICY_SERVER; *sp != '\0'; sp++) { if (isalpha((int)*sp)) { alpha = true; } if (ispunct((int)*sp) && *sp != ':' && *sp != '.') { alpha = true; } if (*sp == ':') { v6 = true; } } if (alpha && !v6) { FatalError ("Error specifying policy server. The policy server's IP address could not be looked up. Please use the IP address instead if there is no error."); } break; case 'K': IGNORELOCK = true; break; case 'D': NewClassesFromString(optarg); break; case 'N': NegateClassesFromString(optarg); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; break; case 'n': DONTDO = true; IGNORELOCK = true; HardClass("opt_dry_run"); break; case 'V': PrintVersionBanner("cf-agent"); exit(0); case 'h': Syntax("cf-agent - cfengine's change agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-agent - cfengine's change agent", OPTIONS, HINTS, ID); exit(0); case 'x': CfOut(cf_error, "", "Self-diagnostic functionality is retired"); exit(0); case 'r': SHOWREPORTS = true; break; default: Syntax("cf-agent - cfengine's change agent", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(cf_error, "", "Unexpected argument with no preceding option: %s\n", argv[optind]); FatalError("Aborted"); } CfDebug("Set debugging\n"); return config; }
static GenericAgentConfig *CheckOpts(EvalContext *ctx, int argc, char **argv) { extern char *optarg; int optindex = 0; int c; char ld_library_path[CF_BUFSIZE]; GenericAgentConfig *config = GenericAgentConfigNewDefault(AGENT_TYPE_EXECUTOR); while ((c = getopt_long(argc, argv, "dvnKIf:D:N:VxL:hFOV1gMW", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && strlen(optarg) < 5) { CfOut(OUTPUT_LEVEL_ERROR, "", " -f used but argument \"%s\" incorrect", optarg); exit(EXIT_FAILURE); } GenericAgentConfigSetInputFile(config, optarg); MINUSF = true; break; case 'd': config->debug_mode = true; break; case 'K': IGNORELOCK = true; break; case 'D': config->heap_soft = StringSetFromString(optarg, ','); break; case 'N': config->heap_negated = StringSetFromString(optarg, ','); break; case 'I': INFORM = true; break; case 'v': VERBOSE = true; NO_FORK = true; break; case 'n': DONTDO = true; IGNORELOCK = true; EvalContextHeapAddHard(ctx, "opt_dry_run"); break; case 'L': snprintf(ld_library_path, CF_BUFSIZE - 1, "LD_LIBRARY_PATH=%s", optarg); if (putenv(xstrdup(ld_library_path)) != 0) { } break; case 'W': WINSERVICE = false; break; case 'F': NO_FORK = true; break; case 'O': ONCE = true; NO_FORK = true; break; case 'V': PrintVersion(); exit(0); case 'h': Syntax("cf-execd - cfengine's execution agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-execd - cfengine's execution agent", OPTIONS, HINTS, ID); exit(0); case 'x': CfOut(OUTPUT_LEVEL_ERROR, "", "Self-diagnostic functionality is retired."); exit(0); default: Syntax("cf-execd - cfengine's execution agent", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(OUTPUT_LEVEL_ERROR, "", "Unexpected argument: %s\n", argv[optind]); } return config; }
static GenericAgentConfig CheckOpts(int argc, char **argv) { extern char *optarg; int optindex = 0; int c; GenericAgentConfig config = GenericAgentDefaultConfig(cf_know); LOOKUP = false; while ((c = getopt_long(argc, argv, "Ihbd:vVf:mxMz:St:ruT", OPTIONS, &optindex)) != EOF) { switch ((char) c) { case 'f': if (optarg && strlen(optarg) < 5) { FatalError(" -f used but argument \"%s\" incorrect", optarg); } SetInputFile(optarg); MINUSF = true; break; case 'd': DEBUG = true; break; case 'I': INFORM = true; break; case 'z': if (optarg) { strncpy(STORY,optarg,CF_BUFSIZE-1); } break; case 'b': WRITE_KMDB = true; break; case 'v': VERBOSE = true; break; case 'V': PrintVersionBanner("cf-know"); exit(0); case 'h': Syntax("cf-know - cfengine's knowledge agent", OPTIONS, HINTS, ID); exit(0); case 'M': ManPage("cf-know - cfengine's knowledge agent", OPTIONS, HINTS, ID); exit(0); case 'H': HTML = 1; break; case 'S': if (optarg) { SyntaxCompletion(optarg); exit(0); } break; case 'm': GENERATE_MANUAL = true; break; case 'x': GENERATE_XML = true; break; case 'o': OUTPUT_FILE = optarg; break; case 't': if (atoi(optarg)) { CfGenerateTestData(atoi(optarg)); exit(0); } break; case 'r': CfRemoveTestData(); exit(0); case 'u': CfUpdateTestData(); exit(0); case 'T': WORDS = true; break; default: Syntax("cf-know - knowledge agent", OPTIONS, HINTS, ID); exit(1); } } if (argv[optind] != NULL) { CfOut(cf_error, "", "Unexpected argument with no preceding option: %s\n", argv[optind]); } return config; }