27#include "clientpipe.h"
45 for (i = 0; i < keylist_size; i++) {
54 for (i = 0; i < deplist2_size; i++){
68 static const char *scmd =
"removeDeadKeysNow";
69 size_t i, deplist2_size = 0;
70 int key_purgable, cmp;
71 int zone_key_purgable;
85 ods_log_error(
"[%s] no dbconn", scmd);
86 client_printf_err(sockfd,
"[%s] no dbconn", scmd);
92 ods_log_error(
"[%s] Error fetching zones", scmd);
93 client_printf_err(sockfd,
"[%s] Error fetching zones", scmd);
100 client_printf (sockfd,
"No keys to purge\n");
110 while (listsize > 0 ) {
111 zone_key_purgable = 0;
114 ods_log_error(
"[%s] error zone_db_get_key_dependencies()", scmd);
115 client_printf_err(sockfd,
"%s: error zone_db_get_key_dependencies()", scmd);
116 free_all(key_list, keylist, deplist, deplist2, zone);
122 ods_log_error(
"[%s] error zone_db_get_keys()", scmd);
123 client_printf_err(sockfd,
"%s: error zone_db_get_keys()", scmd);
124 free_all(key_list, keylist, deplist, deplist2, zone);
132 ods_log_error(
"[%s] error calloc(keylist_size)", scmd);
133 client_printf_err(sockfd,
"[%s] error calloc(keylist_size)", scmd);
134 free_all(key_list, keylist, deplist, deplist2, zone);
137 for (i = 0; i < keylist_size; i++) {
145 ods_log_error(
"[%s] error key_data_list cache", scmd);
146 client_printf_err(sockfd,
"[%s] error key_data_list cache", scmd);
147 free_all(key_list, keylist, deplist, deplist2, zone);
158 if (deplist2_size > 0)
160 for (i = 1; i < deplist2_size; i++)
165 for (i = 0; i < keylist_size; i++) {
168 for (j = 0; j<4; j++) {
174 default: state = NULL;
183 zone_key_purgable = 1;
185 ods_log_info(
"[%s] deleting key: %s", scmd,
187 client_printf (sockfd,
"deleting key: %s\n",
199 ods_log_error(
"[%s] key_state_delete() || key_data_delete() || hsm_key_factory_release_key() failed", scmd);
200 client_printf_err(sockfd,
"[%s] key_state_delete() || key_data_delete() || hsm_key_factory_release_key() failed", scmd);
201 free_all(key_list, keylist, deplist, deplist2, zone);
206 for (j = 0; j < deplist2_size; j++) {
207 if (!deplist2[j])
continue;
210 ods_log_error(
"[%s] cmp deplist from failed", scmd);
211 client_printf_err(sockfd,
"[%s] cmp deplist from failed", scmd);
218 ods_log_error(
"[%s] key_dependency_delete() failed", scmd);
219 client_printf_err(sockfd,
"[%s] key_dependency_delete() failed", scmd);
226 if (zone_key_purgable == 0)
227 client_printf (sockfd,
"No keys to purge for %s \n",
zone_db_name(zone));
229 free_all(key_list, keylist, deplist, deplist2, zone);
240 client_printf (sockfd,
"Number of keys deleted from HSM is %d\n", deleteCount);
242 client_printf (sockfd,
"Found no keys to delete from HSM\n");
244 client_printf (sockfd,
"Refrained from deleting keys from HSM\n");
int db_value_cmp(const db_value_t *value_a, const db_value_t *value_b, int *result)
const char * hsm_key_locator(const hsm_key_t *hsm_key)
const db_value_t * hsm_key_id(const hsm_key_t *hsm_key)
int hsm_key_factory_delete_key(const db_connection_t *connection)
int hsm_key_factory_release_key_id(const db_value_t *hsm_key_id, const db_connection_t *connection)
const db_value_t * key_data_id(const key_data_t *key_data)
size_t key_data_list_size(key_data_list_t *key_data_list)
int key_data_delete(key_data_t *key_data)
void key_data_free(key_data_t *key_data)
void key_data_list_free(key_data_list_t *key_data_list)
unsigned int key_data_introducing(const key_data_t *key_data)
key_data_t * key_data_list_get_next(key_data_list_t *key_data_list)
int key_data_cache_hsm_key(key_data_t *key_data)
key_data_t * key_data_list_get_begin(key_data_list_t *key_data_list)
const key_state_t * key_data_cached_rrsig(key_data_t *key_data)
int key_data_cache_key_states(key_data_t *key_data)
const key_state_t * key_data_cached_dnskey(key_data_t *key_data)
const hsm_key_t * key_data_cached_hsm_key(const key_data_t *key_data)
const key_state_t * key_data_cached_ds(key_data_t *key_data)
const key_state_t * key_data_cached_rrsigdnskey(key_data_t *key_data)
void key_dependency_free(key_dependency_t *key_dependency)
key_dependency_t * key_dependency_list_get_next(key_dependency_list_t *key_dependency_list)
void key_dependency_list_free(key_dependency_list_t *key_dependency_list)
const db_value_t * key_dependency_from_key_data_id(const key_dependency_t *key_dependency)
size_t key_dependency_list_size(key_dependency_list_t *key_dependency_list)
int key_dependency_delete(key_dependency_t *key_dependency)
key_dependency_t * key_dependency_list_get_begin(key_dependency_list_t *key_dependency_list)
int removeDeadKeysNow(int sockfd, db_connection_t *dbconn, policy_t *policy, zone_db_t *rzone, int purge)
int key_state_delete(const key_state_t *key_state)
zone_list_db_t * policy_zone_list(policy_t *policy)
const char * policy_name(const policy_t *policy)
int policy_retrieve_zone_list(policy_t *policy)
void zone_db_free(zone_db_t *zone)
const char * zone_db_name(const zone_db_t *zone)
zone_db_t * zone_list_db_get_next(zone_list_db_t *zone_list)
size_t zone_list_db_size(zone_list_db_t *zone_list)
zone_db_t * zone_db_new_copy(const zone_db_t *zone)
key_dependency_list_t * zone_db_get_key_dependencies(const zone_db_t *zone)
key_data_list_t * zone_db_get_keys(const zone_db_t *zone)