42 static const char* task_str =
"task";
56 ods_log_error(
"[%s] cannot create: missing zone info", task_str);
64 ods_log_error(
"[%s] cannot create: create allocator failed", task_str);
71 ods_log_error(
"[%s] cannot create: allocator failed", task_str);
82 task->
dname = ldns_dname_new_frm_str(who);
98 const char* who = NULL;
120 ods_log_error(
"[%s] unable to recover task from file %s: file corrupted",
121 task_str, filename?filename:
"(null)");
133 ods_log_debug(
"[%s] unable to recover task from file %s: no such file or directory",
134 task_str, filename?filename:
"(null)");
152 fprintf(fd,
";;Task: when %u what %i interrupt %i halted %i backoff %i "
154 (
unsigned) task->
when,
178 ldns_rdf_deep_free(task->
dname);
201 if (!ldns_dname_compare((
const void*) x->
dname, (
const void*) y->
dname)) {
213 return ldns_dname_compare((
const void*) x->
dname, (
const void*) y->
dname);
226 return "[do nothing with]";
229 return "[load signconf for]";
275 char* strtime = NULL;
276 char* strtask = NULL;
279 strtime = ctime(&task->
when);
281 strtime[strlen(strtime)-1] =
'\0';
284 (void)snprintf(buftask, ODS_SE_MAXLINE,
"%s %s I will %s zone %s"
285 "\n", task->
flush?
"Flush":
"On", strtime?strtime:
"(null)",
289 strtask = (
char*) calloc(ODS_SE_MAXLINE,
sizeof(
char));
290 snprintf(strtask, ODS_SE_MAXLINE,
"%s %s I will %s zone %s\n",
291 task->
flush?
"Flush":
"On", strtime?strtime:
"(null)",
307 char* strtime = NULL;
310 strtime = ctime(&task->
when);
312 strtime[strlen(strtime)-1] =
'\0';
314 fprintf(out,
"%s %s I will %s zone %s\n",
315 task->
flush?
"Flush":
"On", strtime?strtime:
"(null)",
329 char* strtime = NULL;
332 strtime = ctime(&task->
when);
334 strtime[strlen(strtime)-1] =
'\0';
337 task->
flush?
"Flush":
"On", strtime?strtime:
"(null)",
int backup_read_str(FILE *in, const char **str)
void ods_log_debug(const char *format,...)
void * allocator_alloc(allocator_type *allocator, size_t size)
void task_log(task_type *task)
int backup_read_time_t(FILE *in, time_t *v)
void ods_log_error(const char *format,...)
int backup_read_int(FILE *in, int *v)
enum task_id_enum task_id
FILE * ods_fopen(const char *file, const char *dir, const char *mode)
task_type * task_create(task_id what, time_t when, const char *who, void *zone)
allocator_type * allocator_create(void *(*allocator)(size_t size), void(*deallocator)(void *))
allocator_type * allocator
task_type * task_recover_from_backup(const char *filename, void *zone)
char * allocator_strdup(allocator_type *allocator, const char *string)
void task_cleanup(task_type *task)
const char * task_what2str(int what)
const char * task_who2str(const char *who)
void ods_fclose(FILE *fd)
void allocator_cleanup(allocator_type *allocator)
int backup_read_check_str(FILE *in, const char *str)
void allocator_deallocate(allocator_type *allocator, void *data)
int task_compare(const void *a, const void *b)
char * task2str(task_type *task, char *buftask)
void task_print(FILE *out, task_type *task)
#define ods_log_assert(x)
void task_backup(FILE *fd, task_type *task)