2001-04-10 17:52:17 -04:00
|
|
|
/*
|
2012-01-31 18:47:33 -05:00
|
|
|
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
2001-04-10 17:52:17 -04:00
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: MPL-2.0
|
2021-06-03 02:37:05 -04:00
|
|
|
*
|
2001-04-10 17:52:17 -04:00
|
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
|
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
2018-02-23 03:53:12 -05:00
|
|
|
*
|
2001-04-10 17:52:17 -04:00
|
|
|
* See the COPYRIGHT file distributed with this work for additional
|
2001-05-07 23:42:34 -04:00
|
|
|
* information regarding copyright ownership.
|
2001-04-10 17:52:17 -04:00
|
|
|
*/
|
|
|
|
|
|
2021-10-05 10:49:47 -04:00
|
|
|
#pragma once
|
2001-03-26 19:45:13 -05:00
|
|
|
|
2005-04-27 00:57:32 -04:00
|
|
|
/*! \file
|
|
|
|
|
* \brief
|
2001-05-07 23:42:34 -04:00
|
|
|
* The name server command channel.
|
|
|
|
|
*/
|
|
|
|
|
|
2018-04-17 11:29:14 -04:00
|
|
|
#include <stdbool.h>
|
|
|
|
|
|
2023-03-08 14:25:34 -05:00
|
|
|
#include <isccc/types.h>
|
|
|
|
|
|
2005-01-10 22:46:11 -05:00
|
|
|
#include <isccfg/aclconf.h>
|
|
|
|
|
|
2001-05-07 23:42:34 -04:00
|
|
|
#include <named/types.h>
|
2001-03-26 19:45:13 -05:00
|
|
|
|
2017-09-08 16:39:09 -04:00
|
|
|
#define NAMED_CONTROL_PORT 953
|
2001-03-26 19:45:13 -05:00
|
|
|
|
2024-06-18 19:49:55 -04:00
|
|
|
#define NAMED_COMMAND_ADDZONE "addzone"
|
2024-06-18 20:20:33 -04:00
|
|
|
#define NAMED_COMMAND_CLOSELOGS "closelogs"
|
2024-06-18 19:49:55 -04:00
|
|
|
#define NAMED_COMMAND_DELZONE "delzone"
|
|
|
|
|
#define NAMED_COMMAND_DNSSEC "dnssec"
|
|
|
|
|
#define NAMED_COMMAND_DNSTAP "dnstap"
|
|
|
|
|
#define NAMED_COMMAND_DNSTAPREOPEN "dnstap-reopen"
|
2017-09-08 16:39:09 -04:00
|
|
|
#define NAMED_COMMAND_DUMPDB "dumpdb"
|
2024-06-18 19:49:55 -04:00
|
|
|
#define NAMED_COMMAND_DUMPSTATS "stats"
|
|
|
|
|
#define NAMED_COMMAND_FETCHLIMIT "fetchlimit"
|
2017-09-08 16:39:09 -04:00
|
|
|
#define NAMED_COMMAND_FLUSH "flush"
|
|
|
|
|
#define NAMED_COMMAND_FLUSHNAME "flushname"
|
|
|
|
|
#define NAMED_COMMAND_FLUSHTREE "flushtree"
|
|
|
|
|
#define NAMED_COMMAND_FREEZE "freeze"
|
2024-06-18 19:49:55 -04:00
|
|
|
#define NAMED_COMMAND_HALT "halt"
|
2017-09-08 16:39:09 -04:00
|
|
|
#define NAMED_COMMAND_LOADKEYS "loadkeys"
|
2024-06-18 19:49:55 -04:00
|
|
|
#define NAMED_COMMAND_MKEYS "managed-keys"
|
2017-09-08 16:39:09 -04:00
|
|
|
#define NAMED_COMMAND_MODZONE "modzone"
|
2024-06-18 19:49:55 -04:00
|
|
|
#define NAMED_COMMAND_NOTIFY "notify"
|
|
|
|
|
#define NAMED_COMMAND_NOTRACE "notrace"
|
|
|
|
|
#define NAMED_COMMAND_NTA "nta"
|
|
|
|
|
#define NAMED_COMMAND_NULL "null"
|
|
|
|
|
#define NAMED_COMMAND_QUERYLOG "querylog"
|
|
|
|
|
#define NAMED_COMMAND_RECONFIG "reconfig"
|
|
|
|
|
#define NAMED_COMMAND_RECURSING "recursing"
|
|
|
|
|
#define NAMED_COMMAND_REFRESH "refresh"
|
|
|
|
|
#define NAMED_COMMAND_RELOAD "reload"
|
|
|
|
|
#define NAMED_COMMAND_RETRANSFER "retransfer"
|
|
|
|
|
#define NAMED_COMMAND_SCAN "scan"
|
|
|
|
|
#define NAMED_COMMAND_SECROOTS "secroots"
|
|
|
|
|
#define NAMED_COMMAND_SERVESTALE "serve-stale"
|
2017-09-08 16:39:09 -04:00
|
|
|
#define NAMED_COMMAND_SHOWZONE "showzone"
|
2024-06-18 19:49:55 -04:00
|
|
|
#define NAMED_COMMAND_SIGN "sign"
|
2017-09-08 16:39:09 -04:00
|
|
|
#define NAMED_COMMAND_SIGNING "signing"
|
2024-04-19 08:41:41 -04:00
|
|
|
#define NAMED_COMMAND_SKR "skr"
|
2024-06-18 19:49:55 -04:00
|
|
|
#define NAMED_COMMAND_STATUS "status"
|
|
|
|
|
#define NAMED_COMMAND_STOP "stop"
|
|
|
|
|
#define NAMED_COMMAND_SYNC "sync"
|
2017-09-08 16:39:09 -04:00
|
|
|
#define NAMED_COMMAND_TCPTIMEOUTS "tcp-timeouts"
|
2024-06-18 19:49:55 -04:00
|
|
|
#define NAMED_COMMAND_TESTGEN "testgen"
|
|
|
|
|
#define NAMED_COMMAND_THAW "thaw"
|
|
|
|
|
#define NAMED_COMMAND_TRACE "trace"
|
|
|
|
|
#define NAMED_COMMAND_UNFREEZE "unfreeze"
|
|
|
|
|
#define NAMED_COMMAND_VALIDATION "validation"
|
|
|
|
|
#define NAMED_COMMAND_ZONESTATUS "zonestatus"
|
2001-03-26 19:45:13 -05:00
|
|
|
|
|
|
|
|
isc_result_t
|
2017-09-08 16:39:09 -04:00
|
|
|
named_controls_create(named_server_t *server, named_controls_t **ctrlsp);
|
2005-04-27 00:57:32 -04:00
|
|
|
/*%<
|
2001-05-07 23:42:34 -04:00
|
|
|
* Create an initial, empty set of command channels for 'server'.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
void
|
2017-09-08 16:39:09 -04:00
|
|
|
named_controls_destroy(named_controls_t **ctrlsp);
|
2005-04-27 00:57:32 -04:00
|
|
|
/*%<
|
2001-05-07 23:42:34 -04:00
|
|
|
* Destroy a set of command channels.
|
|
|
|
|
*
|
|
|
|
|
* Requires:
|
|
|
|
|
* Shutdown of the channels has completed.
|
|
|
|
|
*/
|
2001-03-26 19:45:13 -05:00
|
|
|
|
|
|
|
|
isc_result_t
|
2017-09-08 16:39:09 -04:00
|
|
|
named_controls_configure(named_controls_t *controls, const cfg_obj_t *config,
|
|
|
|
|
cfg_aclconfctx_t *aclconfctx);
|
2005-04-27 00:57:32 -04:00
|
|
|
/*%<
|
2001-05-07 23:42:34 -04:00
|
|
|
* Configure zero or more command channels into 'controls'
|
|
|
|
|
* as defined in the configuration parse tree 'config'.
|
|
|
|
|
* The channels will evaluate ACLs in the context of
|
|
|
|
|
* 'aclconfctx'.
|
|
|
|
|
*/
|
2001-03-26 19:45:13 -05:00
|
|
|
|
|
|
|
|
void
|
2017-09-08 16:39:09 -04:00
|
|
|
named_controls_shutdown(named_controls_t *controls);
|
2005-04-27 00:57:32 -04:00
|
|
|
/*%<
|
2001-05-07 23:42:34 -04:00
|
|
|
* Initiate shutdown of all the command channels in 'controls'.
|
|
|
|
|
*/
|
2001-03-26 19:45:13 -05:00
|
|
|
|
|
|
|
|
isc_result_t
|
2018-04-17 11:29:14 -04:00
|
|
|
named_control_docommand(isccc_sexpr_t *message, bool readonly,
|
2017-09-08 16:39:09 -04:00
|
|
|
isc_buffer_t **text);
|