5 #include "clientpipe.h" 14 static const char *module_str =
"key_purge_cmd";
21 " --policy <policy> | --zone <zone> aka -p | -z\n");
28 "This command will remove keys from the database and HSM that " 29 "are dead. Use with caution.\n" 31 "policy limit the purge to the given policy\n" 32 "zone limit the purge to the given zone\n\n" 37 handles(
const char *cmd, ssize_t n)
64 if (!dbconn)
return 1;
69 if (!(buf = strdup(cmd))) {
70 client_printf_err(sockfd,
"memory error\n");
74 argc = ods_str_explode(buf,
MAX_ARGS, argv);
76 ods_find_arg_and_param(&argc, argv,
"zone",
"z", &zone_name);
77 ods_find_arg_and_param(&argc, argv,
"policy",
"p", &policy_name);
80 if ((!zone_name && !policy_name) || (zone_name && policy_name)) {
81 ods_log_error(
"[%s] expected either --zone or --policy", module_str);
82 client_printf_err(sockfd,
"expected either --zone or --policy \n");
88 client_printf_err(sockfd,
"unknown arguments\n");
96 client_printf_err(sockfd,
"unknown zone %s\n", zone_name);
115 client_printf_err(sockfd,
"unknown policy %s\n", policy_name);
void ods_log_debug(const char *format,...)
const char * policy_name(const policy_t *policy)
int(* run)(int sockfd, struct engine_struct *engine, const char *cmd, ssize_t n, db_connection_t *dbconn)
int zone_get_by_name(zone_t *zone, const char *name)
void ods_log_error(const char *format,...)
void zone_free(zone_t *zone)
void(* usage)(int sockfd)
void policy_free(policy_t *policy)
zone_t * zone_new(const db_connection_t *connection)
struct cmd_func_block * key_purge_funcblock(void)
policy_t * policy_new(const db_connection_t *connection)
const char * zone_name(const zone_t *zone)
int policy_get_by_name(policy_t *policy, const char *name)
int(* handles)(const char *cmd, ssize_t n)
int removeDeadKeysNow(int sockfd, db_connection_t *dbconn, policy_t *policy, zone_t *rzone)