/*PRINTFLIKE1*/ void die(const char *format, ...) { va_list ap; va_start(ap, format); vwarn(format, ap); va_end(ap); fmd_adm_close(g_adm); exit(FMSTAT_EXIT_ERROR); }
/*PRINTFLIKE1*/ void die(const char *format, ...) { va_list ap; va_start(ap, format); // vwarn(format, ap); va_end(ap); fmd_adm_close(g_adm); // printf("fmd_adm_close(g_adm)\n"); exit(FMADM_EXIT_ERROR); }
int main(int argc, char *argv[]) { const struct cmd *cp; const char *p; int err; wr_log_logrotate(0); wr_log_init("/var/log/fms/fmsadm.log"); wr_log_set_loglevel(WR_LOG_ERROR); if ((p = strrchr(argv[0], '/')) == NULL) g_pname = argv[0]; else g_pname = p + 1; if (optind >= argc) return (usage(stdout)); for (cp = cmds; cp->cmd_name != NULL; cp++) { if (strcmp(cp->cmd_name, argv[optind]) == 0) break; } if (cp->cmd_name == NULL) { wr_log("",WR_LOG_ERROR,"%s: illegal subcommand -- %s\n",g_pname,argv[optind]); return (usage(stderr)); } if ((g_adm = fmd_adm_open()) == NULL) die(NULL); /* fmd_adm_errmsg() has enough info */ argc -= optind; argv += optind; optind = 1; /* reset optind so subcommands can getopt() */ err = cp->cmd_func(g_adm, argc, argv); fmd_adm_close(g_adm); return (err == FMADM_EXIT_USAGE ? usage(stderr) : err); }