lwdgrbn.c File Reference

#include <config.h>
#include <isc/mem.h>
#include <isc/socket.h>
#include <isc/string.h>
#include <isc/util.h>
#include <dns/db.h>
#include <dns/lookup.h>
#include <dns/rdata.h>
#include <dns/rdataset.h>
#include <dns/rdatasetiter.h>
#include <dns/result.h>
#include <dns/view.h>
#include <named/types.h>
#include <named/lwdclient.h>
#include <named/lwresd.h>
#include <named/lwsearch.h>

Go to the source code of this file.

Functions

static void start_lookup (ns_lwdclient_t *)
static isc_result_t fill_array (int *pos, dns_rdataset_t *rdataset, int size, unsigned char **rdatas, lwres_uint16_t *rdatalen)
static isc_result_t iterate_node (lwres_grbnresponse_t *grbn, dns_db_t *db, dns_dbnode_t *node, isc_mem_t *mctx)
static void lookup_done (isc_task_t *task, isc_event_t *event)
static void init_grbn (ns_lwdclient_t *client)
void ns_lwdclient_processgrbn (ns_lwdclient_t *client, lwres_buffer_t *b)


Detailed Description

Definition in file lwdgrbn.c.


Function Documentation

static void start_lookup ( ns_lwdclient_t client  )  [static]

Definition at line 396 of file lwdgrbn.c.

References ns_lwdclient::clientmgr, dns_fixedname_init, dns_fixedname_name, dns_lookup_create(), INSIST, ISC_R_SUCCESS, ns_lwdclient::lookup, lookup_done(), ns_lwdclientmgr::mctx, ns_lwdclient_errorpktsend(), ns_lwsearchctx_current(), ns_lwdclient::options, ns_lwdclient::rdtype, ns_lwdclient::searchctx, start_lookup(), ns_lwdclientmgr::task, and ns_lwdclientmgr::view.

static isc_result_t fill_array ( int *  pos,
dns_rdataset_t rdataset,
int  size,
unsigned char **  rdatas,
lwres_uint16_t *  rdatalen 
) [static]

Definition at line 45 of file lwdgrbn.c.

References isc_region::base, dns_rdata_init(), dns_rdata_reset(), dns_rdata_toregion(), dns_rdataset_current(), dns_rdataset_first(), dns_rdataset_next(), INSIST, ISC_R_NOMORE, ISC_R_SUCCESS, isc_region::length, r, and UNUSED.

Referenced by iterate_node(), and lookup_done().

static isc_result_t iterate_node ( lwres_grbnresponse_t *  grbn,
dns_db_t db,
dns_dbnode_t node,
isc_mem_t mctx 
) [static]

Definition at line 73 of file lwdgrbn.c.

References dns_db_allrdatasets(), dns_rdataset_count(), dns_rdataset_disassociate(), dns_rdataset_init(), dns_rdatasetiter_current(), dns_rdatasetiter_destroy(), dns_rdatasetiter_first(), dns_rdatasetiter_next(), dns_trust_secure, fill_array(), ISC_INT32_MAX, isc_mem_get, isc_mem_put, ISC_R_NOMEMORY, ISC_R_NOMORE, ISC_R_SUCCESS, and ttl.

Referenced by lookup_done().

static void lookup_done ( isc_task_t task,
isc_event_t event 
) [static]

Definition at line 192 of file lwdgrbn.c.

References isc_region::base, ns_lwdclient::clientmgr, dns_lookup_destroy(), dns_name_totext(), DNS_R_NCACHENXDOMAIN, DNS_R_NCACHENXRRSET, DNS_R_NXDOMAIN, DNS_R_NXRRSET, dns_rdataset_count(), dns_trust_secure, fill_array(), ns_lwdclient::grbn, INSIST, isc_buffer_used, isc_buffer_usedlength, isc_event_free(), isc_mem_get, isc_mem_put, ISC_R_SUCCESS, isc_result_totext(), ISC_TRUE, iterate_node(), isc_region::length, ns_lwdclient::lookup, ns_lwdclientmgr::lwctx, ns_lwdclientmgr::mctx, name, ns_lwdclient_errorpktsend(), ns_lwdclient_log(), ns_lwdclient_sendreply(), NS_LWDCLIENT_SETSEND, ns_lwsearchctx_next(), ns_lwdclient::pkt, r, dns_view::rdclass, ns_lwdclient::rdtype, ns_lwdclient::recv_buffer, REQUIRE, ns_lwdclient::searchctx, ns_lwdclient::sendbuf, ns_lwdclient::sendlength, start_lookup(), dns_rdataset::trust, dns_rdataset::ttl, UNUSED, and ns_lwdclientmgr::view.

static void init_grbn ( ns_lwdclient_t client  )  [static]

Definition at line 427 of file lwdgrbn.c.

References ns_lwdclient::buffer, ns_lwdclient::grbn, isc_buffer_init, and ns_lwdclient::recv_buffer.

Referenced by ns_lwdclient_processgrbn().

void ns_lwdclient_processgrbn ( ns_lwdclient_t client,
lwres_buffer_t *  b 
)

Definition at line 442 of file lwdgrbn.c.

References ns_lwdclient::byaddr, ns_lwdclient::clientmgr, dns_fixedname_init, dns_fixedname_name, dns_name_fromtext(), init_grbn(), INSIST, isc_buffer_add, isc_buffer_init, ISC_R_SUCCESS, ns_lwdclientmgr::listener, ns_lwdclientmgr::lwctx, ns_lwreslistener::manager, namebuf, ns_lwresd::ndots, ns_lwdclient_errorpktsend(), NS_LWDCLIENT_ISRECVDONE, ns_lwdclient_log(), ns_lwsearchctx_first(), ns_lwsearchctx_init(), ns_lwdclient::options, ns_lwdclient::pkt, ns_lwdclient::query_name, dns_view::rdclass, ns_lwdclient::rdtype, REQUIRE, ns_lwresd::search, ns_lwdclient::searchctx, start_lookup(), and ns_lwdclientmgr::view.

Referenced by process_request().


Generated on Tue Apr 28 17:41:07 2015 by Doxygen 1.5.4 for BIND9 Internals 9.11.0pre-alpha