Skip to content
Snippets Groups Projects
Commit 27fe21f8 authored by Lubos Slovak's avatar Lubos Slovak
Browse files

knotc: reloading individual zones

parent 1b8c410e
No related branches found
No related tags found
No related merge requests found
......@@ -594,11 +594,9 @@ static int cmd_stop(int argc, char *argv[], unsigned flags)
static int cmd_reload(int argc, char *argv[], unsigned flags)
{
UNUSED(argc);
UNUSED(argv);
UNUSED(flags);
return cmd_remote("reload", KNOT_RRTYPE_TXT, 0, NULL);
return cmd_remote("reload", KNOT_RRTYPE_NS, argc, argv);
}
static int cmd_refresh(int argc, char *argv[], unsigned flags)
......
......@@ -174,6 +174,14 @@ static int remote_zone_refresh(zone_t *zone)
return KNOT_EOK;
}
/*! \brief Zone reload callback. */
static int remote_zone_reload(zone_t *zone)
{
dbg_server_verb("Scheduling reload.\n");
zone_events_schedule(zone, ZONE_EVENT_RELOAD, ZONE_EVENT_NOW);
return KNOT_EOK;
}
/*! \brief Zone refresh callback. */
static int remote_zone_retransfer(zone_t *zone)
{
......@@ -231,8 +239,19 @@ static int remote_c_stop(server_t *s, remote_cmdargs_t* a)
*/
static int remote_c_reload(server_t *s, remote_cmdargs_t* a)
{
UNUSED(a);
return server_reload(s, conf()->filename);
int ret = KNOT_EOK;
if (a->argc == 0) {
/* Reload all. */
dbg_server_verb("remote: refreshing all zones\n");
ret = server_reload(s, conf()->filename);
} else {
/* Reload specific zones. */
dbg_server_verb("remote: refreshing particular zones");
ret = remote_rdata_apply(s, a, &remote_zone_reload);
}
return (ret != KNOT_EOK) ? ret : KNOT_CTL_ACCEPTED;
}
/*!
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment