control.h revision 135601
1266423Sjfv/* 2266423Sjfv * Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC") 3266423Sjfv * Copyright (C) 2001-2003 Internet Software Consortium. 4266423Sjfv * 5266423Sjfv * Permission to use, copy, modify, and distribute this software for any 6266423Sjfv * purpose with or without fee is hereby granted, provided that the above 7266423Sjfv * copyright notice and this permission notice appear in all copies. 8266423Sjfv * 9266423Sjfv * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 10266423Sjfv * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 11266423Sjfv * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 12266423Sjfv * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13266423Sjfv * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 14266423Sjfv * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15266423Sjfv * PERFORMANCE OF THIS SOFTWARE. 16266423Sjfv */ 17266423Sjfv 18266423Sjfv/* $Id: control.h,v 1.6.2.2.2.6.6.1 2004/09/20 01:00:01 marka Exp $ */ 19266423Sjfv 20266423Sjfv#ifndef NAMED_CONTROL_H 21266423Sjfv#define NAMED_CONTROL_H 1 22266423Sjfv 23266423Sjfv/* 24266423Sjfv * The name server command channel. 25266423Sjfv */ 26266423Sjfv 27266423Sjfv#include <isccc/types.h> 28266423Sjfv 29266423Sjfv#include <named/aclconf.h> 30266423Sjfv#include <named/types.h> 31266423Sjfv 32266423Sjfv#define NS_CONTROL_PORT 953 33266423Sjfv 34266423Sjfv#define NS_COMMAND_STOP "stop" 35266423Sjfv#define NS_COMMAND_HALT "halt" 36266423Sjfv#define NS_COMMAND_RELOAD "reload" 37270346Sjfv#define NS_COMMAND_RECONFIG "reconfig" 38270346Sjfv#define NS_COMMAND_REFRESH "refresh" 39269198Sjfv#define NS_COMMAND_RETRANSFER "retransfer" 40266423Sjfv#define NS_COMMAND_DUMPSTATS "stats" 41266423Sjfv#define NS_COMMAND_QUERYLOG "querylog" 42266423Sjfv#define NS_COMMAND_DUMPDB "dumpdb" 43270346Sjfv#define NS_COMMAND_TRACE "trace" 44266423Sjfv#define NS_COMMAND_NOTRACE "notrace" 45266423Sjfv#define NS_COMMAND_FLUSH "flush" 46266423Sjfv#define NS_COMMAND_FLUSHNAME "flushname" 47266423Sjfv#define NS_COMMAND_STATUS "status" 48266423Sjfv#define NS_COMMAND_FREEZE "freeze" 49270346Sjfv#define NS_COMMAND_UNFREEZE "unfreeze" 50266423Sjfv#define NS_COMMAND_THAW "thaw" 51266423Sjfv#define NS_COMMAND_RECURSING "recursing" 52266423Sjfv#define NS_COMMAND_NULL "null" 53266423Sjfv 54266423Sjfvisc_result_t 55270346Sjfvns_controls_create(ns_server_t *server, ns_controls_t **ctrlsp); 56266423Sjfv/* 57266423Sjfv * Create an initial, empty set of command channels for 'server'. 58266423Sjfv */ 59266423Sjfv 60266423Sjfvvoid 61266423Sjfvns_controls_destroy(ns_controls_t **ctrlsp); 62266423Sjfv/* 63266423Sjfv * Destroy a set of command channels. 64270346Sjfv * 65266423Sjfv * Requires: 66266423Sjfv * Shutdown of the channels has completed. 67266423Sjfv */ 68266423Sjfv 69266423Sjfvisc_result_t 70266423Sjfvns_controls_configure(ns_controls_t *controls, cfg_obj_t *config, 71266423Sjfv ns_aclconfctx_t *aclconfctx); 72266423Sjfv/* 73270346Sjfv * Configure zero or more command channels into 'controls' 74266423Sjfv * as defined in the configuration parse tree 'config'. 75266423Sjfv * The channels will evaluate ACLs in the context of 76266423Sjfv * 'aclconfctx'. 77266423Sjfv */ 78266423Sjfv 79266423Sjfvvoid 80266423Sjfvns_controls_shutdown(ns_controls_t *controls); 81270346Sjfv/* 82270346Sjfv * Initiate shutdown of all the command channels in 'controls'. 83270346Sjfv */ 84270346Sjfv 85270346Sjfvisc_result_t 86270346Sjfvns_control_docommand(isccc_sexpr_t *message, isc_buffer_t *text); 87270346Sjfv 88270346Sjfv#endif /* NAMED_CONTROL_H */ 89270346Sjfv