#include <isc/mutex.h>
#include <isc/result.h>
#include <isc/types.h>
#include <dns/types.h>
#include <named/types.h>
Go to the source code of this file.
Data Structures | |
struct | ns_lwsearchlist |
An ns_lwsearchlist_t holds a list of search path elements. More... | |
struct | ns_lwsearchctx |
An ns_lwsearchctx stores the state of search list during a lookup operation. More... | |
Defines | |
#define | NAMED_LWSEARCH_H 1 |
Functions | |
isc_result_t | ns_lwsearchlist_create (isc_mem_t *mctx, ns_lwsearchlist_t **listp) |
Create an empty search list object. | |
void | ns_lwsearchlist_attach (ns_lwsearchlist_t *source, ns_lwsearchlist_t **target) |
Attach to a search list object. | |
void | ns_lwsearchlist_detach (ns_lwsearchlist_t **listp) |
Detach from a search list object. | |
isc_result_t | ns_lwsearchlist_append (ns_lwsearchlist_t *list, dns_name_t *name) |
Append an element to a search list. This creates a copy of the name. | |
void | ns_lwsearchctx_init (ns_lwsearchctx_t *sctx, ns_lwsearchlist_t *list, dns_name_t *name, unsigned int ndots) |
Creates a search list context structure. | |
void | ns_lwsearchctx_first (ns_lwsearchctx_t *sctx) |
Moves the search list context iterator to the first element, which is usually the exact name. | |
isc_result_t | ns_lwsearchctx_next (ns_lwsearchctx_t *sctx) |
Moves the search list context iterator to the next element. | |
isc_result_t | ns_lwsearchctx_current (ns_lwsearchctx_t *sctx, dns_name_t *absname) |
Obtains the current name to be looked up. This involves either concatenating the name with a search path element, making an exact name absolute, or doing nothing. |
An ns_lwsearchlist_t holds a list of search path elements.
An ns_lwsearchctx stores the state of search list during a lookup operation.
Definition in file lwsearch.h.
#define NAMED_LWSEARCH_H 1 |
Definition at line 21 of file lwsearch.h.
isc_result_t ns_lwsearchlist_create | ( | isc_mem_t * | mctx, | |
ns_lwsearchlist_t ** | listp | |||
) |
Create an empty search list object.
Definition at line 41 of file lwsearch.c.
References ISC_LIST_INIT, isc_mem_attach(), isc_mem_get, isc_mem_put, isc_mutex_init, ISC_R_NOMEMORY, ISC_R_SUCCESS, ns_lwsearchlist::lock, LWSEARCHLIST_MAGIC, ns_lwsearchlist::magic, ns_lwsearchlist::mctx, ns_lwsearchlist::names, ns_lwsearchlist::refs, and REQUIRE.
Referenced by ns_lwdmanager_create().
void ns_lwsearchlist_attach | ( | ns_lwsearchlist_t * | source, | |
ns_lwsearchlist_t ** | target | |||
) |
Attach to a search list object.
Definition at line 68 of file lwsearch.c.
References INSIST, ns_lwsearchlist::lock, LOCK, ns_lwsearchlist::refs, REQUIRE, UNLOCK, and VALID_LWSEARCHLIST.
void ns_lwsearchlist_detach | ( | ns_lwsearchlist_t ** | listp | ) |
Detach from a search list object.
Definition at line 82 of file lwsearch.c.
References dns_name_free(), INSIST, ISC_LIST_EMPTY, ISC_LIST_HEAD, ISC_LIST_UNLINK, isc_mem_detach(), isc_mem_put, ns_lwsearchlist::lock, LOCK, ns_lwsearchlist::magic, ns_lwsearchlist::mctx, mctx, name, ns_lwsearchlist::names, ns_lwsearchlist::refs, REQUIRE, UNLOCK, and VALID_LWSEARCHLIST.
Referenced by ns_lwdmanager_create(), and ns_lwdmanager_detach().
isc_result_t ns_lwsearchlist_append | ( | ns_lwsearchlist_t * | list, | |
dns_name_t * | name | |||
) |
Append an element to a search list. This creates a copy of the name.
Definition at line 112 of file lwsearch.c.
References dns_name_dup(), dns_name_init(), ISC_LINK_INIT, ISC_LIST_APPEND, isc_mem_get, isc_mem_put, ISC_R_NOMEMORY, ISC_R_SUCCESS, ns_lwsearchlist::mctx, ns_lwsearchlist::names, REQUIRE, and VALID_LWSEARCHLIST.
Referenced by ns_lwdmanager_create().
void ns_lwsearchctx_init | ( | ns_lwsearchctx_t * | sctx, | |
ns_lwsearchlist_t * | list, | |||
dns_name_t * | name, | |||
unsigned int | ndots | |||
) |
Creates a search list context structure.
Definition at line 134 of file lwsearch.c.
References dns_name_countlabels(), dns_name_isabsolute(), ns_lwsearchctx::doneexact, ns_lwsearchctx::exactfirst, INSIST, ISC_FALSE, ISC_LIST_HEAD, ISC_TRUE, ns_lwsearchctx::list, ns_lwsearchlist::names, ns_lwsearchctx::ndots, ns_lwsearchctx::relname, and ns_lwsearchctx::searchname.
Referenced by ns_lwdclient_processgabn(), and ns_lwdclient_processgrbn().
void ns_lwsearchctx_first | ( | ns_lwsearchctx_t * | sctx | ) |
Moves the search list context iterator to the first element, which is usually the exact name.
Definition at line 154 of file lwsearch.c.
References REQUIRE, and UNUSED.
Referenced by ns_lwdclient_processgabn(), and ns_lwdclient_processgrbn().
isc_result_t ns_lwsearchctx_next | ( | ns_lwsearchctx_t * | sctx | ) |
Moves the search list context iterator to the next element.
Definition at line 160 of file lwsearch.c.
References ns_lwsearchctx::doneexact, ns_lwsearchctx::exactfirst, INSIST, ISC_LIST_NEXT, ISC_R_NOMORE, ISC_R_SUCCESS, ISC_TRUE, ns_lwsearchctx::list, REQUIRE, and ns_lwsearchctx::searchname.
Referenced by generate_reply(), and lookup_done().
isc_result_t ns_lwsearchctx_current | ( | ns_lwsearchctx_t * | sctx, | |
dns_name_t * | absname | |||
) |
Obtains the current name to be looked up. This involves either concatenating the name with a search path element, making an exact name absolute, or doing nothing.
Definition at line 186 of file lwsearch.c.
References dns_name_concatenate(), dns_name_isabsolute(), dns_rootname, ns_lwsearchctx::doneexact, ns_lwsearchctx::exactfirst, ISC_FALSE, ISC_TRUE, ns_lwsearchctx::list, ns_lwsearchctx::relname, REQUIRE, and ns_lwsearchctx::searchname.
Referenced by start_lookup(), and store_realname().