Handle to a currently pending resolution. More...
Data Fields | |
struct GNS_ResolverHandle * | next |
DLL. More... | |
struct GNS_ResolverHandle * | prev |
DLL. More... | |
struct GNUNET_CRYPTO_PublicKey | authority_zone |
The top-level GNS authoritative zone to query. More... | |
GNS_ResultProcessor | proc |
called when resolution phase finishes More... | |
void * | proc_cls |
closure passed to proc More... | |
struct GNUNET_DHT_GetHandle * | get_handle |
Handle for DHT lookups. More... | |
struct GNUNET_DNSSTUB_RequestSocket * | dns_request |
Socket for a DNS request, NULL if none is active. More... | |
struct GNUNET_RESOLVER_RequestHandle * | std_resolve |
Handle for standard DNS resolution, NULL if none is active. More... | |
struct GNUNET_NAMECACHE_QueueEntry * | namecache_qe |
Pending Namecache lookup task. More... | |
struct GNUNET_REVOCATION_Query * | rev_check |
Pending revocation check. More... | |
struct GNUNET_CONTAINER_HeapNode * | dht_heap_node |
Heap node associated with this lookup. More... | |
struct AuthorityChain * | ac_head |
DLL to store the authority chain. More... | |
struct AuthorityChain * | ac_tail |
DLL to store the authority chain. More... | |
struct GNUNET_SCHEDULER_Task * | task_id |
ID of a task associated with the resolution process. More... | |
char * | name |
The name to resolve. More... | |
char * | leho |
Legacy Hostname to use if we encountered GNS2DNS record and thus can deduct the LEHO from that transition. More... | |
struct DnsResult * | dns_result_head |
DLL of results we got from DNS. More... | |
struct DnsResult * | dns_result_tail |
DLL of results we got from DNS. More... | |
size_t | name_resolution_pos |
Current offset in name where we are resolving. More... | |
enum GNUNET_GNS_LocalOptions | options |
Use only cache. More... | |
int | protocol |
For SRV and TLSA records, the number of the protocol specified in the name. More... | |
int | service |
For SRV and TLSA records, the number of the service specified in the name. More... | |
char * | prefix |
For SMIMEA,OPENPGPKEY... records. More... | |
int | record_type |
Desired type for the resolution. More... | |
unsigned int | loop_limiter |
We increment the loop limiter for each step in a recursive resolution. More... | |
unsigned int | loop_threshold |
Maximum value of loop_limiter allowed by client. More... | |
uint16_t | original_dns_id |
16 bit random ID we used in the dns_request. More... | |
Handle to a currently pending resolution.
On result (positive or negative) the GNS_ResultProcessor is called.
Definition at line 252 of file gnunet-service-gns_resolver.c.
struct GNS_ResolverHandle* GNS_ResolverHandle::next |
DLL.
Definition at line 257 of file gnunet-service-gns_resolver.c.
struct GNS_ResolverHandle* GNS_ResolverHandle::prev |
DLL.
Definition at line 262 of file gnunet-service-gns_resolver.c.
struct GNUNET_CRYPTO_PublicKey GNS_ResolverHandle::authority_zone |
The top-level GNS authoritative zone to query.
Definition at line 267 of file gnunet-service-gns_resolver.c.
Referenced by GNS_resolver_lookup(), recursive_gns2dns_resolution(), and start_resolver_lookup().
GNS_ResultProcessor GNS_ResolverHandle::proc |
called when resolution phase finishes
Definition at line 272 of file gnunet-service-gns_resolver.c.
Referenced by dns_result_parser(), fail_resolution(), GNS_resolver_done(), GNS_resolver_lookup(), handle_gns_resolution_result(), recursive_dns_resolution(), recursive_gns2dns_resolution(), start_resolver_lookup(), and transmit_lookup_dns_result().
void* GNS_ResolverHandle::proc_cls |
closure passed to proc
Definition at line 277 of file gnunet-service-gns_resolver.c.
Referenced by dns_result_parser(), fail_resolution(), GNS_resolver_done(), GNS_resolver_lookup(), handle_gns_resolution_result(), recursive_dns_resolution(), recursive_gns2dns_resolution(), start_resolver_lookup(), and transmit_lookup_dns_result().
struct GNUNET_DHT_GetHandle* GNS_ResolverHandle::get_handle |
Handle for DHT lookups.
should be NULL if no lookups are in progress
Definition at line 282 of file gnunet-service-gns_resolver.c.
Referenced by GNS_resolver_lookup_cancel(), handle_dht_response(), and start_dht_request().
struct GNUNET_DNSSTUB_RequestSocket* GNS_ResolverHandle::dns_request |
Socket for a DNS request, NULL if none is active.
Definition at line 288 of file gnunet-service-gns_resolver.c.
Referenced by dns_result_parser(), GNS_resolver_lookup_cancel(), and recursive_dns_resolution().
struct GNUNET_RESOLVER_RequestHandle* GNS_ResolverHandle::std_resolve |
Handle for standard DNS resolution, NULL if none is active.
Definition at line 293 of file gnunet-service-gns_resolver.c.
Referenced by dns_result_parser(), GNS_resolver_lookup_cancel(), handle_dns_result(), handle_gns_cname_result(), and handle_gns_redirect_result().
struct GNUNET_NAMECACHE_QueueEntry* GNS_ResolverHandle::namecache_qe |
Pending Namecache lookup task.
Definition at line 298 of file gnunet-service-gns_resolver.c.
Referenced by GNS_resolver_lookup_cancel(), handle_namecache_block_response(), and recursive_gns_resolution_namecache().
struct GNUNET_REVOCATION_Query* GNS_ResolverHandle::rev_check |
Pending revocation check.
Definition at line 303 of file gnunet-service-gns_resolver.c.
Referenced by GNS_resolver_lookup_cancel(), handle_revocation_result(), and recursive_gns_resolution_revocation().
struct GNUNET_CONTAINER_HeapNode* GNS_ResolverHandle::dht_heap_node |
Heap node associated with this lookup.
Used to limit number of concurrent requests.
Definition at line 309 of file gnunet-service-gns_resolver.c.
Referenced by GNS_resolver_lookup_cancel(), handle_dht_response(), and start_dht_request().
struct AuthorityChain* GNS_ResolverHandle::ac_head |
DLL to store the authority chain.
Definition at line 314 of file gnunet-service-gns_resolver.c.
Referenced by GNS_resolver_lookup_cancel(), handle_gns_redirect_result(), handle_gns_resolution_result(), handle_namecache_block_response(), recursive_gns2dns_resolution(), recursive_pkey_resolution(), and start_resolver_lookup().
struct AuthorityChain* GNS_ResolverHandle::ac_tail |
DLL to store the authority chain.
Definition at line 319 of file gnunet-service-gns_resolver.c.
Referenced by dns_result_parser(), GNS_resolver_lookup_cancel(), handle_dht_response(), handle_gns_redirect_result(), handle_gns_resolution_result(), handle_namecache_block_response(), handle_revocation_result(), recursive_dns_resolution(), recursive_gns2dns_resolution(), recursive_gns_resolution_namecache(), recursive_gns_resolution_revocation(), recursive_pkey_resolution(), recursive_resolution(), start_resolver_lookup(), and translate_dot_plus().
struct GNUNET_SCHEDULER_Task* GNS_ResolverHandle::task_id |
ID of a task associated with the resolution process.
Definition at line 324 of file gnunet-service-gns_resolver.c.
Referenced by continue_with_gns2dns(), dns_result_parser(), fail_resolution(), GNS_resolver_lookup(), GNS_resolver_lookup_cancel(), GNS_resolver_lookup_cancel_(), handle_gns_redirect_result(), handle_gns_resolution_result(), recursive_dns_resolution(), recursive_gns2dns_resolution(), recursive_pkey_resolution(), recursive_resolution(), start_resolver_lookup(), and timeout_resolution().
char* GNS_ResolverHandle::name |
The name to resolve.
Definition at line 329 of file gnunet-service-gns_resolver.c.
Referenced by dns_result_parser(), GNS_resolver_lookup(), GNS_resolver_lookup_cancel(), handle_dht_response(), handle_gns_cname_result(), handle_gns_namecache_resolution_result(), handle_gns_redirect_result(), handle_gns_resolution_result(), recursive_gns2dns_resolution(), recursive_resolution(), resolver_lookup_get_next_label(), and start_resolver_lookup().
char* GNS_ResolverHandle::leho |
Legacy Hostname to use if we encountered GNS2DNS record and thus can deduct the LEHO from that transition.
Definition at line 335 of file gnunet-service-gns_resolver.c.
Referenced by dns_result_parser(), GNS_resolver_lookup_cancel(), and recursive_dns_resolution().
struct DnsResult* GNS_ResolverHandle::dns_result_head |
DLL of results we got from DNS.
Definition at line 340 of file gnunet-service-gns_resolver.c.
Referenced by add_dns_result(), GNS_resolver_lookup_cancel(), and transmit_lookup_dns_result().
struct DnsResult* GNS_ResolverHandle::dns_result_tail |
DLL of results we got from DNS.
Definition at line 345 of file gnunet-service-gns_resolver.c.
Referenced by add_dns_result(), and GNS_resolver_lookup_cancel().
size_t GNS_ResolverHandle::name_resolution_pos |
Current offset in name where we are resolving.
Definition at line 350 of file gnunet-service-gns_resolver.c.
Referenced by dns_result_parser(), GNS_resolver_lookup(), handle_gns_cname_result(), handle_gns_redirect_result(), handle_gns_resolution_result(), recursive_gns2dns_resolution(), and resolver_lookup_get_next_label().
enum GNUNET_GNS_LocalOptions GNS_ResolverHandle::options |
Use only cache.
Definition at line 355 of file gnunet-service-gns_resolver.c.
Referenced by GNS_resolver_lookup(), handle_namecache_block_response(), and recursive_gns2dns_resolution().
int GNS_ResolverHandle::protocol |
For SRV and TLSA records, the number of the protocol specified in the name.
0 if no protocol was given.
Definition at line 361 of file gnunet-service-gns_resolver.c.
Referenced by handle_gns_resolution_result(), and resolver_lookup_get_next_label().
int GNS_ResolverHandle::service |
For SRV and TLSA records, the number of the service specified in the name.
0 if no service was given.
Definition at line 367 of file gnunet-service-gns_resolver.c.
Referenced by handle_gns_resolution_result(), and resolver_lookup_get_next_label().
char* GNS_ResolverHandle::prefix |
For SMIMEA,OPENPGPKEY... records.
NULL if no _ prefix was given.
Definition at line 372 of file gnunet-service-gns_resolver.c.
Referenced by GNS_resolver_lookup_cancel(), handle_gns_resolution_result(), and resolver_lookup_get_next_label().
int GNS_ResolverHandle::record_type |
Desired type for the resolution.
Definition at line 378 of file gnunet-service-gns_resolver.c.
Referenced by dns_result_parser(), GNS_resolver_lookup(), handle_gns_cname_result(), handle_gns_redirect_result(), handle_gns_resolution_result(), recursive_dns_resolution(), and recursive_gns2dns_resolution().
unsigned int GNS_ResolverHandle::loop_limiter |
We increment the loop limiter for each step in a recursive resolution.
If it passes our loop_threshold (e.g. due to self-recursion in the resolution, i.e CNAME fun), we stop.
Definition at line 385 of file gnunet-service-gns_resolver.c.
Referenced by recursive_gns2dns_resolution(), and recursive_resolution().
unsigned int GNS_ResolverHandle::loop_threshold |
Maximum value of loop_limiter allowed by client.
Definition at line 390 of file gnunet-service-gns_resolver.c.
Referenced by GNS_resolver_lookup(), recursive_gns2dns_resolution(), and recursive_resolution().
uint16_t GNS_ResolverHandle::original_dns_id |
16 bit random ID we used in the dns_request.
Definition at line 395 of file gnunet-service-gns_resolver.c.
Referenced by dns_result_parser(), and recursive_dns_resolution().