35 #include "clientpipe.h" 43 #include "scheduler/schedule.h" 44 #include "scheduler/task.h" 50 static const char *module_str =
"enforce_task";
53 perform_enforce(
int sockfd,
engine_type *engine,
char const *zonename,
60 int bSignerConfNeedsWriting = 0;
61 int bSubmitToParent = 0;
62 int bRetractFromParent = 0;
69 ods_log_error(
"[%s] Could not find zone %s in database",
70 module_str, zonename);
75 ods_log_error(
"Next update for zone %s NOT scheduled " 82 ods_log_info(
"Passing through zone %s.\n",
zone_db_name(zone));
83 bSignerConfNeedsWriting = 1;
84 t_next = schedule_SUCCESS;
86 t_next =
update(engine, dbconn, zone, policy, time_now(), &zone_updated);
98 if (bSignerConfNeedsWriting) {
101 ods_log_info(
"[%s] No changes to signconf file required for zone %s", module_str, zonename);
107 ods_log_warning(
"[%s] please submit DS " 108 "with keytag %d for zone %s",
112 ods_log_warning(
"[%s] please retract DS " 113 "with keytag %d for zone %s",
115 bRetractFromParent = 1;
122 if (bSubmitToParent) {
124 schedule_task(engine->
taskq, submit, 1, 0);
128 if (bRetractFromParent) {
130 schedule_task(engine->
taskq, retract, 1, 0);
141 return perform_enforce(-1, (
engine_type *)userdata, owner, dbconn);
147 return task_create(strdup(owner), TASK_CLASS_ENFORCER, TASK_TYPE_ENFORCE,
164 ods_log_assert(policy);
168 ods_log_error(
"[%s] Can't fetch zones for policy %s from database",
187 ods_fatal_exit(
"[%s] failed to list zones from DB", module_str);
zone_db_t * zone_db_new_get_by_name(const db_connection_t *connection, const char *name)
void zone_db_free(zone_db_t *zone)
task_type * enforce_task(engine_type *engine, char const *owner)
key_data_list_t * zone_db_get_keys(const zone_db_t *zone)
time_t enforce_task_perform(task_type *task, char const *owner, void *userdata, void *context)
const char * policy_name(const policy_t *policy)
void enforce_task_flush_all(engine_type *engine, db_connection_t *dbconn)
unsigned int key_data_keytag(const key_data_t *key_data)
unsigned int policy_passthrough(const policy_t *policy)
void zone_list_db_free(zone_list_db_t *zone_list)
const zone_db_t * zone_list_db_next(zone_list_db_t *zone_list)
void policy_free(policy_t *policy)
const key_data_t * key_data_list_next(key_data_list_t *key_data_list)
const char * zone_db_name(const zone_db_t *zone)
void enforce_task_flush_policy(engine_type *engine, db_connection_t *dbconn, policy_t const *policy)
void enforce_task_flush_zone(engine_type *engine, char const *zonename)
unsigned int zone_db_signconf_needs_writing(const zone_db_t *zone)
zone_list_db_t * zone_list_db_new_get(const db_connection_t *connection)
void key_data_list_free(key_data_list_t *key_data_list)
void db_connection_free(db_connection_t *connection)
policy_t * zone_db_get_policy(const zone_db_t *zone)
task_type * keystate_ds_retract_task(engine_type *engine, char const *owner)
int zone_db_set_next_change(zone_db_t *zone, int next_change)
int zone_db_update(zone_db_t *zone)
task_type * keystate_ds_submit_task(engine_type *engine, char const *owner)
const db_value_t * policy_id(const policy_t *policy)
time_t update(engine_type *engine, db_connection_t *dbconn, zone_db_t *zone, policy_t const *policy, time_t now, int *zone_updated)
zone_list_db_t * zone_list_db_new_get_by_policy_id(const db_connection_t *connection, const db_value_t *policy_id)
void signconf_task_flush_zone(engine_type *engine, db_connection_t *dbconn, const char *zonename)