unbound: mesh_state Struct Reference

unbound 0.1

Public Types | Data Fields
mesh_state Struct Reference

A mesh query state Unique per qname, qtype, qclass (from the qstate). More...

`#include <mesh.h>`

## Public Types
enum | mesh_list_select { mesh_no_list , mesh_forever_list , mesh_jostle_list }
| if this state is in the forever list, jostle list, or neither

## Data Fields
rbnode_type | node
| node in mesh_area all tree, key is this struct.
rbnode_type | run_node
| node in mesh_area runnable tree, key is this struct
struct module_qstate | s
| the query state.
struct mesh_reply * | reply_list
| the list of replies to clients for the results
struct mesh_cb * | cb_list
| the list of callbacks for the results
rbtree_type | super_set
| set of superstates (that want this state's result) contains struct mesh_state_ref*
rbtree_type | sub_set
| set of substates (that this state needs to continue) contains struct mesh_state_ref*
size_t | num_activated
| number of activations for the mesh state
struct mesh_state * | prev
| previous in linked list for reply states
struct mesh_state * | next
| next in linked list for reply states
enum mesh_state::mesh_list_select | list_select
struct mesh_state * | unique
| pointer to this state for uniqueness or NULL
uint8_t | replies_sent
| true if replies have been sent out (at end for alignment)

## Detailed Description

A mesh query state Unique per qname, qtype, qclass (from the qstate).

And RD / CD flag; in case a client turns it off. And priming queries are different from ordinary queries (because of hints).

The entire structure is allocated in a region, this region is the qstate region. All parts (rbtree nodes etc) are also allocated in the region.

## Field Documentation

## ◆ node

rbnode_type mesh_state::node

node in mesh_area all tree, key is this struct.

Must be first.

Referenced by mesh_area_find(), mesh_new_callback(), mesh_new_client(), and mesh_state_create().

## ◆ s

struct module_qstate mesh_state::s

the query state.

Note that the qinfo and query_flags may not change.

Referenced by do_dump_requestlist(), get_mesh_status(), mesh_area_find(), mesh_continue(), mesh_delete_helper(), mesh_do_callback(), mesh_get_mem(), mesh_log_list(), mesh_make_new_space(), mesh_new_callback(), mesh_new_client(), mesh_query_done(), mesh_run(), mesh_send_reply(), mesh_serve_expired_callback(), mesh_serve_expired_init(), mesh_state_add_cb(), mesh_state_add_reply(), mesh_state_attachment(), mesh_state_cleanup(), mesh_state_compare(), mesh_state_create(), mesh_state_delete(), and mesh_walk_supers().

The documentation for this struct was generated from the following file:

- services/mesh.h