in auomsctl.cpp [1757:1898]
int main(int argc, char**argv) {
if (argc < 2 || strlen(argv[1]) < 2) {
usage();
exit(1);
}
Signals::Init();
Signals::Start();
Signals::SetExitHandler([](){ exit(1); });
if (strcmp(argv[1], "-v") == 0) {
std::cout << std::string(AUOMS_VERSION) << std::endl;
return 0;
} else if (strcmp(argv[1], "-s") == 0) {
return show_audit_status();
} else if (strcmp(argv[1], "-bl") == 0) {
if (argc < 3) {
usage();
exit(1);
}
return set_backlog_limit(argv[2]);
} else if (strcmp(argv[1], "-bwt") == 0) {
if (argc < 3) {
usage();
exit(1);
}
return set_backlog_wait_time(argv[2]);
} else if (strcmp(argv[1], "-l") == 0) {
std::string key;
if (argc > 2) {
key = argv[2];
}
return list_rules(false, key);
} else if (strcmp(argv[1], "-rl") == 0) {
std::string key;
if (argc > 2) {
key = argv[2];
}
return list_rules(true, key);
} else if (strcmp(argv[1], "-D") == 0) {
std::string key;
if (argc > 2) {
key = argv[2];
}
return delete_rules(key);
} else if (strcmp(argv[1], "-R") == 0) {
if (argc < 3) {
usage();
exit(1);
}
return load_rules(argv[2]);
} else if (strcmp(argv[1], "-p") == 0) {
if (argc < 3) {
usage();
exit(1);
}
return print_rules(argv[2]);
} else if (strcmp(argv[1], "-m") == 0) {
if (argc < 4) {
usage();
exit(1);
}
return merge_rules(argv[2], argv[3]);
} else if (strcmp(argv[1], "-d") == 0) {
if (argc < 4) {
usage();
exit(1);
}
return diff_rules(argv[2], argv[3]);
} else if (strcmp(argv[1], "state") == 0) {
return show_auoms_state();
} else if (strcmp(argv[1], "status") == 0) {
return show_auoms_status();
} else if (strcmp(argv[1], "is-enabled") == 0) {
try {
if (is_service_enabled()) {
std::cout << "enabled" << std::endl;
return 0;
} else {
std::cout << "disabled" << std::endl;
return 1;
}
} catch (std::exception& ex) {
std::cerr << ex.what() << std::endl;
return 2;
}
} else if (strcmp(argv[1], "enable") == 0) {
return enable_auoms();
} else if (strcmp(argv[1], "disable") == 0) {
return disable_auoms();
} else if (strcmp(argv[1], "start") == 0) {
bool all = false;
if (argc > 2 && strcmp(argv[2], "all") == 0) {
all = true;
}
return start_auoms(all);
} else if (strcmp(argv[1], "restart") == 0) {
bool all = false;
if (argc > 2 && strcmp(argv[2], "all") == 0) {
all = true;
}
return restart_auoms(all);
} else if (strcmp(argv[1], "stop") == 0) {
bool all = false;
if (argc > 2 && strcmp(argv[2], "all") == 0) {
all = true;
}
return stop_auoms(all);
} else if (strcmp(argv[1], "tap") == 0) {
if (argc > 2 && strcmp(argv[2], "multicast") == 0) {
return tap_audit_multicast();
}
return tap_audit();
} else if (strcmp(argv[1], "monitor") == 0) {
return monitor_auoms_events();
} else if (strcmp(argv[1], "reload") == 0) {
return reload_auoms();
} else if (strcmp(argv[1], "setrules") == 0) {
return set_rules();
} else if (strcmp(argv[1], "loadrules") == 0) {
return load_rules();
} else if (strcmp(argv[1], "upgrade") == 0) {
return upgrade();
} else if (strcmp(argv[1], "spam_netlink") == 0) {
if (argc < 4) {
usage();
exit(1);
}
return spam_netlink(argv[2], argv[3]);
} else if (strcmp(argv[1], "test_redaction") == 0) {
if (argc < 3) {
usage();
exit(1);
}
std::string dir;
dir = argv[2];
return test_redaction(dir);
}
usage();
exit(1);
}