#include <isc/types.h>
#include <isc/sockaddr.h>
#include <isccfg/cfg.h>
#include <dns/types.h>
Go to the source code of this file.
Data Structures | |
struct | ns_lwresd |
struct | ns_lwreslistener |
Defines | |
#define | NAMED_LWRESD_H 1 |
Functions | |
isc_result_t | ns_lwresd_configure (isc_mem_t *mctx, const cfg_obj_t *config) |
Configure lwresd. | |
isc_result_t | ns_lwresd_parseeresolvconf (isc_mem_t *mctx, cfg_parser_t *pctx, cfg_obj_t **configp) |
void | ns_lwresd_shutdown (void) |
Trigger shutdown. | |
isc_result_t | ns_lwdmanager_create (isc_mem_t *mctx, const cfg_obj_t *lwres, ns_lwresd_t **lwresdp) |
create manager | |
void | ns_lwdmanager_attach (ns_lwresd_t *source, ns_lwresd_t **targetp) |
attach to manager | |
void | ns_lwdmanager_detach (ns_lwresd_t **lwresdp) |
detach from manager | |
void | ns_lwreslistener_attach (ns_lwreslistener_t *source, ns_lwreslistener_t **targetp) |
attach to listener | |
void | ns_lwreslistener_detach (ns_lwreslistener_t **listenerp) |
detach from lister | |
void | ns_lwreslistener_unlinkcm (ns_lwreslistener_t *listener, ns_lwdclientmgr_t *cm) |
link client manager | |
void | ns_lwreslistener_linkcm (ns_lwreslistener_t *listener, ns_lwdclientmgr_t *cm) |
unlink client manager | |
void * | ns__lwresd_memalloc (void *arg, size_t size) |
Wrappers around our memory management stuff, for the lwres functions. | |
void | ns__lwresd_memfree (void *arg, void *mem, size_t size) |
Definition in file lwresd.h.
isc_result_t ns_lwresd_configure | ( | isc_mem_t * | mctx, | |
const cfg_obj_t * | config | |||
) |
Configure lwresd.
Definition at line 778 of file lwresd.c.
References ns_lwreslistener::address, cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_get(), CHECK, cleanup(), configure_listener(), INADDR_LOOPBACK, ISC_LIST_APPENDLIST, ISC_LIST_EMPTY, ISC_LIST_HEAD, ISC_LIST_INIT, ISC_LIST_UNLINK, ISC_LOG_NOTICE, isc_log_write(), ISC_LOGCATEGORY_GENERAL, isc_once_do, ISC_R_SUCCESS, isc_sockaddr_format(), ISC_SOCKADDR_FORMATSIZE, isc_sockaddr_fromin(), listener_shutdown(), LOCK, ns_config_getiplist(), ns_config_putiplist(), NS_LOGMODULE_LWRESD, ns_lwdmanager_create(), ns_lwdmanager_detach(), ns_lwreslistener_detach(), once, port, REQUIRE, RUNTIME_CHECK, and UNLOCK.
Referenced by load_configuration().
isc_result_t ns_lwresd_parseeresolvconf | ( | isc_mem_t * | mctx, | |
cfg_parser_t * | pctx, | |||
cfg_obj_t ** | configp | |||
) |
Definition at line 110 of file lwresd.c.
References buffer_putstr(), cfg_parse_buffer(), cfg_type_namedconf, CHECK, cleanup(), DNS_R_SYNTAX, INSIST, isc_buffer_base, isc_buffer_init, isc_buffer_usedlength, ISC_LOG_ERROR, isc_log_write(), isc_netaddr_format(), ISC_NETADDR_FORMATSIZE, isc_netaddr_fromsockaddr(), isc_netaddr_masktoprefixlen(), isc_netaddr_totext(), ISC_R_NOMEMORY, ISC_R_SUCCESS, lwaddr_sockaddr_fromlwresaddr(), lwctx, ns__lwresd_memalloc(), ns__lwresd_memfree(), NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_LWRESD, str, and text.
Referenced by load_configuration().
void ns_lwresd_shutdown | ( | void | ) |
Trigger shutdown.
Definition at line 883 of file lwresd.c.
References ISC_LIST_EMPTY, ISC_LIST_HEAD, ISC_LIST_UNLINK, isc_once_do, ISC_R_SUCCESS, ns_lwreslistener_detach(), once, and RUNTIME_CHECK.
Referenced by destroy_managers().
isc_result_t ns_lwdmanager_create | ( | isc_mem_t * | mctx, | |
const cfg_obj_t * | lwres, | |||
ns_lwresd_t ** | lwresdp | |||
) |
create manager
Definition at line 285 of file lwresd.c.
References cfg_list_first(), cfg_list_next(), cfg_listelt_value(), cfg_map_get(), cfg_obj_asstring(), cfg_obj_asuint32(), cfg_tuple_get(), dns_fixedname_init, dns_fixedname_name, dns_name_fromtext(), dns_rootname, dns_view_detach(), dns_viewlist_find(), INSIST, isc_buffer_add, isc_buffer_constinit, ISC_FALSE, ISC_LOG_WARNING, isc_log_write(), isc_mem_attach(), isc_mem_detach(), isc_mem_get, isc_mem_put, isc_mutex_init, ISC_R_NOMEMORY, ISC_R_SUCCESS, ns_lwresd::lock, LWRESD_MAGIC, LWRESD_NCLIENTS_MAX, ns_lwresd::magic, ns_lwresd::mctx, name, namebuf, ns_lwresd::nclients, ns_lwresd::ndots, ns_config_getclass(), NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_LWRESD, ns_lwsearchlist_append(), ns_lwsearchlist_create(), ns_lwsearchlist_detach(), ns_lwresd::ntasks, ns_lwresd::refs, RUNTIME_CHECK, search(), ns_lwresd::search, ns_lwresd::shutting_down, and ns_lwresd::view.
Referenced by ns_lwresd_configure().
void ns_lwdmanager_attach | ( | ns_lwresd_t * | source, | |
ns_lwresd_t ** | targetp | |||
) |
attach to manager
Definition at line 429 of file lwresd.c.
References INSIST, ns_lwresd::lock, LOCK, ns_lwresd::refs, UNLOCK, and VALID_LWRESD.
Referenced by listener_create().
void ns_lwdmanager_detach | ( | ns_lwresd_t ** | lwresdp | ) |
detach from manager
Definition at line 441 of file lwresd.c.
References dns_view_detach(), INSIST, ISC_FALSE, isc_mem_detach(), isc_mem_put, ISC_TRUE, ns_lwresd::lock, LOCK, ns_lwresd::magic, ns_lwresd::mctx, mctx, ns_lwsearchlist_detach(), ns_lwresd::refs, ns_lwresd::search, UNLOCK, VALID_LWRESD, and ns_lwresd::view.
Referenced by ns_lwresd_configure(), and ns_lwreslistener_detach().
void ns_lwreslistener_attach | ( | ns_lwreslistener_t * | source, | |
ns_lwreslistener_t ** | targetp | |||
) |
attach to listener
Definition at line 476 of file lwresd.c.
References INSIST, ns_lwreslistener::lock, LOCK, ns_lwreslistener::refs, UNLOCK, and VALID_LWRESLISTENER.
Referenced by ns_lwdclientmgr_create().
void ns_lwreslistener_detach | ( | ns_lwreslistener_t ** | listenerp | ) |
detach from lister
Definition at line 490 of file lwresd.c.
References INSIST, ISC_FALSE, isc_mem_detach(), isc_mem_put, isc_socket_detach(), ISC_TRUE, ns_lwreslistener::lock, LOCK, ns_lwreslistener::magic, ns_lwreslistener::manager, ns_lwreslistener::mctx, mctx, ns_lwdmanager_detach(), ns_lwreslistener::refs, ns_lwreslistener::sock, UNLOCK, and VALID_LWRESLISTENER.
Referenced by configure_listener(), lwdclientmgr_destroy(), ns_lwresd_configure(), and ns_lwresd_shutdown().
void ns_lwreslistener_unlinkcm | ( | ns_lwreslistener_t * | listener, | |
ns_lwdclientmgr_t * | cm | |||
) |
link client manager
Definition at line 696 of file lwresd.c.
References ISC_LIST_UNLINK, ns_lwreslistener::lock, LOCK, REQUIRE, UNLOCK, and VALID_LWRESLISTENER.
Referenced by lwdclientmgr_destroy().
void ns_lwreslistener_linkcm | ( | ns_lwreslistener_t * | listener, | |
ns_lwdclientmgr_t * | cm | |||
) |
unlink client manager
Definition at line 706 of file lwresd.c.
References ISC_LIST_APPEND, REQUIRE, and VALID_LWRESLISTENER.
Referenced by ns_lwdclientmgr_create().
void* ns__lwresd_memalloc | ( | void * | arg, | |
size_t | size | |||
) |
Wrappers around our memory management stuff, for the lwres functions.
Definition at line 82 of file lwresd.c.
References isc_mem_get.
Referenced by ns_lwdclientmgr_create(), and ns_lwresd_parseeresolvconf().
void ns__lwresd_memfree | ( | void * | arg, | |
void * | mem, | |||
size_t | size | |||
) |
Definition at line 87 of file lwresd.c.
References isc_mem_put.
Referenced by ns_lwdclientmgr_create(), and ns_lwresd_parseeresolvconf().