36 #include "clientpipe.h" 43 static const char *module_str =
"zonelist_import_cmd";
50 " [--remove-missing-zones] aka -r\n" 53 " [--file <absolute path>] aka -f\n" 61 "Import zones from zonelist.xml into enforcer database.\n" 63 "remove-missing-zones Remove any zones from database not existed in zonelist file\n" 64 "file File to import, instead of zonelist file configured in conf.xml\n\n" 69 handles(
const char *cmd, ssize_t n)
75 run(
int sockfd,
engine_type* engine,
const char *cmd, ssize_t n,
78 char path[PATH_MAX], buf[ODS_SE_MAXLINE];
79 int ret, argc, remove_missing_zones;
81 const char *argv[
NARGV];
82 const char* zonelist_path = NULL;
86 if (!engine || !engine->
config ||
95 strncpy(buf, cmd,
sizeof(buf));
96 buf[
sizeof(buf)-1] =
'\0';
98 argc = ods_str_explode(buf,
NARGV, argv);
102 client_printf(sockfd,
"too many arguments\n");
105 remove_missing_zones = (ods_find_arg(&argc, argv,
"remove-missing-zones",
"r") >= 0);
106 (void)ods_find_arg_and_param(&argc, argv,
"file",
"f", &zonelist_path);
110 client_printf(sockfd,
"unknown arguments\n");
114 ret =
zonelist_import(sockfd, engine, dbconn, remove_missing_zones, zonelist_path);
121 if (snprintf(path,
sizeof(path),
"%s/%s", engine->
config->
working_dir, OPENDNSSEC_ENFORCER_ZONELIST) >= (
int)
sizeof(path)
124 ods_log_error(
"[%s] internal zonelist export failed", module_str);
125 client_printf_err(sockfd,
"Unable to export the internal zonelist %s, updates will not reach the Signer!\n", path);
129 ods_log_info(
"[%s] internal zonelist exported successfully", module_str);
#define ZONELIST_IMPORT_OK
int zonelist_import(int sockfd, engine_type *engine, db_connection_t *dbconn, int do_delete, const char *zonelist_path)
void ods_log_debug(const char *format,...)
const char * zonelist_filename
void ods_log_info(const char *format,...)
int(* run)(int sockfd, struct engine_struct *engine, const char *cmd, ssize_t n, db_connection_t *dbconn)
void ods_log_error(const char *format,...)
void(* usage)(int sockfd)
#define ZONELIST_EXPORT_OK
engineconfig_type * config
int zonelist_export(int sockfd, db_connection_t *connection, const char *filename, int comment)
struct cmd_func_block * zonelist_import_funcblock(void)
int(* handles)(const char *cmd, ssize_t n)
#define ZONELIST_IMPORT_NO_CHANGE
void ods_log_warning(const char *format,...)
int flush_enforce_task(engine_type *engine, bool enforce_all)