Data Structures
Here are the data structures with brief descriptions:
 Cacl_addrAn address span with access control information
 Cacl_listAccess control storage structure
 Caddr_action
 Caddr_data
 Caddr_tree_nodeTree of IP addresses
 Caddredge
 Caddrnode
 Caddrtree
 Calgo_needsStorage for algorithm needs
 Calloc_cacheStructure that provides allocation
 Cauth_addrList of addresses
 Cauth_chunkAuth zone master zone transfer data chunk
 Cauth_dataAuth data
 Cauth_masterAuth zone master upstream, and the config settings for it
 Cauth_nextprobeThe next probe task
 Cauth_probeThe probe task
 Cauth_rrsetA auth data RRset
 Cauth_transferThe transfer task
 Cauth_xferAuthoritative zone transfer structure
 Cauth_zoneAuth zone
 Cauth_zonesAuthoritative zones, shared
 Cautr_global_dataAutotrust global metadata
 Cautr_point_dataAutotrust metadata for a trust point
 Cautr_taAutotrust metadata for one trust anchor key
 Ccachedb_backendBackend call routines
 Ccachedb_envThe global variable environment contents for the cachedb Shared between threads, this represents long term information
 Ccachedb_qstatePer query state for the cachedb module
 Ccanon_rrRR entries in a canonical sorted tree of RRs
 Ccb_pair
 Cce_responseClosest encloser (ce) proof results Contains the ce and the next-closer (nc) proof
 Ccheck_request_resultStructure holding the result of the worker_check_request function
 Cclientip_synthesized_rr
 Cclientip_synthesized_rrset
 CcodelineThe allocation statistics block
 Ccomm_baseA communication point dispatcher
 Ccomm_pointCommunication point to the network These behaviours can be accomplished by setting the flags and passing return values from the callback
 Ccomm_replyReply information for a communication point
 Ccomm_signalStructure only for signal events
 Ccomm_timerStructure only for making timeout events
 Ccompress_tree_nodeData structure to help domain name compression in outgoing messages
 Cconfig_authAuth config options
 Cconfig_collate_argCollate func arg
 Cconfig_fileThe configuration options
 Cconfig_parser_stateUsed during options parsing
 Cconfig_str2listList of two strings for config options
 Cconfig_str3listList of three strings for config options
 Cconfig_strbytelistList of string, bytestring for config options
 Cconfig_strlistList of strings for config options
 Cconfig_strlist_headList head for strlist processing, used for append operation
 Cconfig_stubStub config options
 Cconfig_viewView config options
 Ccookie_secret
 Ccookie_secretsThe cookie secrets from the cookie-secret-file
 Cctx_queryThe queries outstanding for the libunbound resolver
 CdaemonStructure holding worker list
 Cdaemon_remoteThe remote control tool state
 Cdel_infoLocal info for deletion functions
 CdelegptDelegation Point
 Cdelegpt_addrAddress of target nameserver in delegation point
 Cdelegpt_nsNameservers for a delegation point
 Cdns64_envThis structure contains module configuration information
 Cdns64_qstatePer-query module-specific state
 Cdns_msgRegion allocated message reply
 Cdomain_limit_dataRatelimit settings for domains
 Cdoq_addr_storageDoQ socket address storage for IP4 or IP6 address
 Cdoq_pkt_addrDoQ packet address information
 Cdoq_server_socketThe DoQ server socket information, for DNS over QUIC
 Cdt_frame_read_bufContaining buffer and counter for reading DNSTAP frames
 Cdt_io_list_itemIO thread list of queues list item lists a worker queue that should be looked at and sent to the log server
 Cdt_io_threadIO thread that reads from the queues and writes them
 Cdt_msg_entryAn entry in the dt_msg_queue
 Cdt_msg_queueA message buffer with dnstap messages queued up
 Cdynlibmod_env
 Cecs_dataECS option
 Cecs_whitelistEcs_whitelist structure
 Cedns_dataEDNS data storage rdata is parsed in a list (has accessor functions)
 Cedns_known_optionKnown edns option
 Cedns_optionEDNS option
 Cedns_string_addrEDNS string
 Cedns_stringsStructure containing all EDNS strings
 CentryData structure to keep the canned queries in
 Cerrinf_strlist
 Cext_thr_infoStruct for extended thread info
 Cfake_commpointFake commpoint, stores information
 Cfake_pendingPending queries to network, fake replay version
 Cfake_timerTimers with callbacks, fake replay version
 Cfast_reload_auth_changeFast reload auth zone change
 Cfast_reload_constructStructure with constructed elements for use during fast reload
 Cfast_reload_printqFast reload printout queue
 Cfast_reload_threadFast reload thread structure
 Chttp2_sessionHTTP2 session
 Chttp2_streamHTTP stream
 Cinfra_argStructure for argument data for dump infra host
 Cinfra_cacheInfra cache
 Cinfra_dataHost information encompasses host capabilities and retransmission timeouts
 Cinfra_keyHost information kept for every server, per zone
 Cinplace_cbInplace callback list of registered routines to be called
 Cinternal_baseInternal base structure, so that every thread has its own events
 Cinternal_eventThe internal event structure for keeping ub_event info for the event
 Cinternal_signalInternal signal structure, to store signal event in
 Cinternal_timerInternal timer structure, to store timer event in
 Cip_listList of IP addresses
 Cip_rate_keyKey for ip_ratelimit lookups, a source IP
 Cipsecmod_envThe global variable environment contents for the ipsecmod Shared between threads, this represents long term information
 Cipsecmod_qstatePer query state for the ipsecmod module
 Cipset_env
 Cipset_qstate
 Citer_donotqIterator donotqueryaddresses structure
 Citer_envGlobal state for the iterator
 Citer_forward_zoneIterator forward servers for a particular zone
 Citer_forwardsIterator forward zones structure
 Citer_hintsIterator hints structure
 Citer_hints_stubIterator hints for a particular stub
 Citer_nat64Iterator global state for nat64
 Citer_prep_listList of prepend items
 Citer_privIterator priv structure
 Citer_qstatePer query state for the iterator module
 Ckey_cacheKey cache
 Ckey_entry_dataKey entry for the validator
 Ckey_entry_keyA key entry for the validator
 CkeysetsKey settings
 ClibworkerThe library-worker status structure Internal to the worker
 Clisten_dnsportListening for queries structure
 Clisten_listSingle linked list to store event points
 Clisten_portSingle linked list to store shared ports that have been opened for use by all threads
 Clocal_dataLocal data
 Clocal_rrsetA local data RRset
 Clocal_zoneLocal zone
 Clocal_zone_overrideLocal zone override information
 Clocal_zonesAuthoritative local zones storage, shared
 Clock_refReference to a lock in a rbtree set
 ClookinfoResult list for the lookups
 ClruhashHash table that keeps LRU list of entries
 Clruhash_binA single bin with a linked list of entries in it
 Clruhash_entryAn entry into the hash table
 Cmain_tap_dataMain tap callback data
 Cmatched_delegation_point
 Cmesh_areaMesh of query states
 Cmesh_cbCallback to result routine
 Cmesh_replyReply to a client
 Cmesh_stateA mesh query state Unique per qname, qtype, qclass (from the qstate)
 Cmesh_state_refRbtree reference to a mesh_state
 Cmodule_envModule environment
 Cmodule_func_blockModule functionality block
 Cmodule_qstateModule state, per query
 Cmodule_stackStack of modules
 Cmsg_parseData stored in scratch pad memory during parsing
 Cmsgreply_entryStructure to keep hash table entry for message replies
 Cmy_event
 Cmy_event_base
 Cname_tree_nodeTree of domain names
 Cnonce_cache_key
 Cnsec3_cache_tableCache table for NSEC3 hashes
 Cnsec3_cached_hashThe NSEC3 hash result storage
 Cnsec3_filterFilter conditions for NSEC3 proof Used to iterate over the applicable NSEC3 RRs
 Corder_idKeep track of lock id in lock-verify application
 Corder_lockLock
 Coutbound_entryOutbound list entry
 Coutbound_listThe outbound list
 Coutside_networkSend queries to outside servers and wait for answers from servers
 Cpacked_rrsetAn RRset can be represented using both key and data together
 Cpacked_rrset_dataRRset data
 Cpacked_rrset_keyThe identifying information for an RRset
 Cpacked_rrset_listList of packed rrsets
 CpendingA query that has an answer pending for it
 Cpending_tcpPending TCP query to server
 CperfinfoGlobal info for perf
 CperfioI/O port for perf
 Cport_commOutgoing commpoint for UDP port
 Cport_ifOutgoing interface
 Cpp2_headerPROXYv2 header
 CproxyList of proxy fds that return replies from the server to our clients
 Cproxy_protocol_dataInternal struct initialized with function pointers for writing uint16 and uint32
 Cproxy_protocol_lookup_tableInternal lookup table; could be further generic like sldns_lookup_table for all the future generic stuff
 Cpythonmod_envGlobal state for the module
 Cpythonmod_qstatePer query state for the iterator module
 Cq_ansStruct for query and answer checks
 Cquery_infoStructure to store query information that makes answers to queries different
 Crate_dataData for ratelimits per domain name It is incremented when a non-cache-lookup happens for that domain name
 Crate_keyKey for ratelimit lookups, a domain name
 Cratelimit_list_argStruct for user arg ratelimit list
 Crbnode_typeThe rbnode_type struct definition
 Crbtree_typeDefinition for tree struct
 Crc_stateBusy control command connection, SSL state
 CregionalRegional* is the first block*
 Cremote_streamConnection to print to, either SSL or plain over fd
 Creplay_answerAn answer that is pending to happen
 Creplay_momentA replay moment
 Creplay_rangeRange of timesteps, and canned replies to matching queries
 Creplay_runtimeReplay storage of runtime information
 Creplay_scenarioA replay scenario
 Creplay_varReplay macro variable
 Creply_infoStructure to store DNS query and the reply packet
 Creply_packetStruct to keep a linked list of reply packets for a query
 Cresp_addrAn address span with response control information
 Crespip_action_infoData items representing the result of response-ip processing
 Crespip_addr_infoSubset of resp_addr.node, used for inform-variant logging
 Crespip_client_infoClient-specific attributes that can affect IP-based actions
 Crespip_qstatePer query state for the response-ip module
 Crespip_setConceptual set of IP addresses for response AAAA or A records that should trigger special actions
 Creuse_tcpReuse TCP connection, still open can be used again
 CringbufThe ring buffer
 CrpzRPZ containing policies
 Crr_parseData stored for an RR during parsing
 Crrset_cacheThe rrset cache Thin wrapper around hashtable, like a typedef
 Crrset_parseData stored for an rrset during parsing
 Crrset_refInformation to reference an rrset
 Crtt_infoRTT information
 Cserve_expired_dataStruct to hold relevant data for serve expired
 Cservice_callbackCallback to party interested in serviced query results
 Cserviced_queryQuery service record
 Cshared_secret_cache_key
 Cshm_main_infoThe SHM info
 CSignedCert
 Cslab_test_thrStructure to threaded test the lru hash table
 CslabhashHash table formed from several smaller ones
 Cslabhash_testdataTest structure contains test data
 Cslabhash_testkeyTest structure contains test key
 Csldns_bufferImplementation of buffers to ease operations
 Csldns_file_parse_stateWire parse state for parsing files
 Csldns_struct_lookup_tableA general purpose lookup table
 Csldns_struct_rr_descriptorContains all information about resource record types
 Csock_listLinked list of sockaddrs May be allocated such that only 'len' bytes of addr exist for the structure
 Cstop_flush_infoStructure to keep track of information during stop flush
 Csubnet_envGlobal state for the subnet module
 Csubnet_msg_cache_data
 Csubnet_qstate
 Cta_keyTrust anchor key
 Ctap_dataTap callback variables
 Ctap_data_list
 Ctap_socketTap socket
 Ctap_socket_listList of sockets
 Ctcl_addrAn address span with connection limit information
 Ctcl_listTCP connection limit storage structure
 Ctcp_proxyList of TCP proxy fd pairs to TCP connect client to server
 Ctcp_req_done_itemList of done items in TCP channel
 Ctcp_req_infoTCP request info
 Ctcp_req_open_itemList of open items in TCP channel
 Ctcp_send_listAn item that has to be TCP relayed
 Ctest_thrStructure to threaded test the lru hash table
 Cth_buckBucket of time history information
 CtimehistKeep histogram of time values
 Ctrack_idKeeping track of the async ids
 Ctrust_anchorA trust anchor in the trust anchor store
 CtubeA pipe
 Ctube_res_listList of results (arbitrary command serializations) to write back
 Cub_ctxThe context structure
 Cub_eventAn "object" comprising a user defined pluggable event
 Cub_event_baseA user defined pluggable event base is registered by providing a ub_event_base "object" with the ub_ctx_create_ub_event() function
 Cub_event_base_vmtThe Virtual Method Table for and ub_event_base "object"
 Cub_event_vmtThe Virtual Method Table for and ub_event "object"
 Cub_packed_rrset_keyThis structure contains an RRset
 Cub_resultThe validation and resolution results
 Cub_server_statsPer worker statistics
 Cub_shm_stat_infoSome global statistics that are not in struct stats_info, this struct is shared on a shm segment (shm-key in unbound.conf)
 Cub_stats_infoStatistics to send over the control pipe when asked This struct is made to be memcopied, sent in binary
 Cunbound_socket
 Cval_anchorsTrust anchor store
 Cval_envGlobal state for the validator
 Cval_neg_cacheThe negative cache
 Cval_neg_dataData element for aggressive negative caching
 Cval_neg_zonePer Zone aggressive negative caching data
 Cval_qstatePer query state for the validator module
 CviewView
 CviewsViews storage, shared
 Cwait_limit_netblock_infoData to store the configuration per netblock for the wait limit
 Cwaiting_tcpQuery waiting for TCP buffer
 CworkerStructure holding working information for unbound
 Cxml_dataXML parse private data during the parse