GNUnet 0.22.2
Request Struct Reference

Request we should make. More...

Collaboration diagram for Request:
[legend]

Data Fields

struct GNUNET_CONTAINER_HeapNodehn
 Requests are kept in a heap while waiting to be resolved. More...
 
struct Requestnext
 Active requests are kept in a DLL. More...
 
struct Requestprev
 Active requests are kept in a DLL. More...
 
struct Recordrec_head
 Head of records that should be published in GNS for this hostname. More...
 
struct Recordrec_tail
 Tail of records that should be published in GNS for this hostname. More...
 
struct GNUNET_DNSSTUB_RequestSocketrs
 Socket used to make the request, NULL if not active. More...
 
char * hostname
 Hostname we are resolving, allocated at the end of this struct (optimizing memory consumption by reducing total number of allocations). More...
 
struct GNUNET_NAMESTORE_QueueEntryqe
 Namestore operation pending for this record. More...
 
const struct Zonezone
 Zone responsible for this request. More...
 
struct GNUNET_TIME_Absolute expires
 At what time does the (earliest) of the returned records for this name expire? At this point, we need to re-fetch the record. More...
 
struct GNUNET_TIME_Absolute op_start_time
 While we are fetching the record, the value is set to the starting time of the DNS operation. More...
 
unsigned int issue_num
 How often did we issue this query? (And failed, reset to zero once we were successful.) More...
 
uint16_t id
 random 16-bit DNS query identifier. More...
 
void * raw
 Raw DNS query. More...
 
size_t raw_len
 Number of bytes in raw. More...
 
time_t time
 When did we last issue this request? More...
 
int issue_num
 How often did we issue this query? More...
 
struct GNUNET_NETWORK_Handlelsock
 Socket to use for sending the reply. More...
 
const void * addr
 Destination address to use. More...
 
struct GNUNET_DNSPARSER_Packetpacket
 Initially, this is the DNS request, it will then be converted to the DNS response. More...
 
struct GNUNET_GNS_LookupWithTldRequestlookup
 Our GNS request handle. More...
 
struct GNUNET_DNSSTUB_RequestSocketdns_lookup
 Our DNS request handle. More...
 
struct GNUNET_SCHEDULER_Tasktimeout_task
 Task run on timeout or shutdown to clean up without response. More...
 
struct VpnContextvpn_ctx
 Vpn resolution context. More...
 
char * udp_msg
 Original UDP request message. More...
 
size_t addr_len
 Number of bytes in addr. More...
 
size_t udp_msg_size
 Number of bytes in udp_msg. More...
 
uint16_t original_request_id
 ID of the original request. More...
 
struct GNUNET_GNS_LookupWithTldRequestlr
 Socket used to make the request, NULL if not active. More...
 
const char * hostname
 Hostname we are resolving, allocated at the end of this struct (optimizing memory consumption by reducing total number of allocations). More...
 
struct GNUNET_TIME_Relative latency
 Observed latency, set once we got a reply. More...
 
enum RequestCategory cat
 Category of the request. More...
 

Detailed Description

Request we should make.

Data kept per request.

We keep this struct in memory per request, thus optimizing it is crucial for the overall memory consumption of the zone importer.

Definition at line 127 of file gnunet-zoneimport.c.

Field Documentation

◆ hn

struct GNUNET_CONTAINER_HeapNode* Request::hn

Requests are kept in a heap while waiting to be resolved.

Definition at line 132 of file gnunet-zoneimport.c.

Referenced by do_shutdown(), insert_sorted(), main(), process_queue(), and process_result().

◆ next

struct Request * Request::next

Active requests are kept in a DLL.

Requests are kept in a DLL.

Definition at line 137 of file gnunet-zoneimport.c.

Referenced by do_shutdown(), and process_queue().

◆ prev

struct Request * Request::prev

Active requests are kept in a DLL.

Requests are kept in a DLL.

Definition at line 142 of file gnunet-zoneimport.c.

◆ rec_head

struct Record* Request::rec_head

Head of records that should be published in GNS for this hostname.

Definition at line 148 of file gnunet-zoneimport.c.

Referenced by add_record(), free_records(), ns_lookup_result_cb(), and process_result().

◆ rec_tail

struct Record* Request::rec_tail

Tail of records that should be published in GNS for this hostname.

Definition at line 154 of file gnunet-zoneimport.c.

Referenced by add_record(), and free_records().

◆ rs

struct GNUNET_DNSSTUB_RequestSocket * Request::rs

Socket used to make the request, NULL if not active.

Definition at line 159 of file gnunet-zoneimport.c.

Referenced by process_queue(), process_result(), and submit_req().

◆ hostname [1/2]

char * Request::hostname

Hostname we are resolving, allocated at the end of this struct (optimizing memory consumption by reducing total number of allocations).

Hostname we are resolving.

Definition at line 166 of file gnunet-zoneimport.c.

Referenced by build_dns_query(), check_for_glue(), get_label(), ns_lookup_result_cb(), process_queue(), process_record(), process_result(), queue(), and store_completed_cb().

◆ qe

struct GNUNET_NAMESTORE_QueueEntry* Request::qe

Namestore operation pending for this record.

Definition at line 171 of file gnunet-zoneimport.c.

Referenced by do_shutdown(), process_queue(), process_result(), and store_completed_cb().

◆ zone

const struct Zone* Request::zone

Zone responsible for this request.

Definition at line 176 of file gnunet-zoneimport.c.

Referenced by ns_lookup_result_cb(), process_result(), and queue().

◆ expires

struct GNUNET_TIME_Absolute Request::expires

At what time does the (earliest) of the returned records for this name expire? At this point, we need to re-fetch the record.

Definition at line 183 of file gnunet-zoneimport.c.

Referenced by insert_sorted(), ns_lookup_result_cb(), process_queue(), and process_result().

◆ op_start_time

struct GNUNET_TIME_Absolute Request::op_start_time

While we are fetching the record, the value is set to the starting time of the DNS operation.

While we are fetching the record, the value is set to the starting time of the GNS operation.

While doing a NAMESTORE store, again set to the start time of the NAMESTORE operation.

Definition at line 191 of file gnunet-zoneimport.c.

Referenced by process_queue(), process_result(), and store_completed_cb().

◆ issue_num [1/2]

unsigned int Request::issue_num

How often did we issue this query? (And failed, reset to zero once we were successful.)

Definition at line 197 of file gnunet-zoneimport.c.

Referenced by process_queue(), process_result(), and submit_req().

◆ id

uint16_t Request::id

random 16-bit DNS query identifier.

Definition at line 202 of file gnunet-zoneimport.c.

Referenced by build_dns_query(), process_result(), and queue().

◆ raw

void* Request::raw

Raw DNS query.

Definition at line 52 of file gnunet-zonewalk.c.

Referenced by process_result(), queue(), and submit_req().

◆ raw_len

size_t Request::raw_len

Number of bytes in raw.

Definition at line 57 of file gnunet-zonewalk.c.

Referenced by queue(), and submit_req().

◆ time

time_t Request::time

When did we last issue this request?

Definition at line 67 of file gnunet-zonewalk.c.

Referenced by submit_req().

◆ issue_num [2/2]

int Request::issue_num

How often did we issue this query?

Definition at line 72 of file gnunet-zonewalk.c.

◆ lsock

struct GNUNET_NETWORK_Handle* Request::lsock

Socket to use for sending the reply.

Definition at line 83 of file gnunet-dns2gns.c.

◆ addr

const void* Request::addr

Destination address to use.

Definition at line 88 of file gnunet-dns2gns.c.

◆ packet

struct GNUNET_DNSPARSER_Packet* Request::packet

Initially, this is the DNS request, it will then be converted to the DNS response.

Definition at line 94 of file gnunet-dns2gns.c.

◆ lookup

struct GNUNET_GNS_LookupWithTldRequest* Request::lookup

Our GNS request handle.

Definition at line 99 of file gnunet-dns2gns.c.

◆ dns_lookup

struct GNUNET_DNSSTUB_RequestSocket* Request::dns_lookup

Our DNS request handle.

Definition at line 104 of file gnunet-dns2gns.c.

◆ timeout_task

struct GNUNET_SCHEDULER_Task* Request::timeout_task

Task run on timeout or shutdown to clean up without response.

Definition at line 110 of file gnunet-dns2gns.c.

◆ vpn_ctx

struct VpnContext* Request::vpn_ctx

Vpn resolution context.

Definition at line 115 of file gnunet-dns2gns.c.

Referenced by vpn_allocation_cb().

◆ udp_msg

char* Request::udp_msg

Original UDP request message.

Definition at line 120 of file gnunet-dns2gns.c.

◆ addr_len

size_t Request::addr_len

Number of bytes in addr.

Definition at line 125 of file gnunet-dns2gns.c.

◆ udp_msg_size

size_t Request::udp_msg_size

Number of bytes in udp_msg.

Definition at line 130 of file gnunet-dns2gns.c.

◆ original_request_id

uint16_t Request::original_request_id

ID of the original request.

Definition at line 135 of file gnunet-dns2gns.c.

◆ lr

struct GNUNET_GNS_LookupWithTldRequest* Request::lr

Socket used to make the request, NULL if not active.

Definition at line 80 of file gnunet-gns-benchmark.c.

Referenced by free_request(), process_queue(), and process_result().

◆ hostname [2/2]

const char* Request::hostname

Hostname we are resolving, allocated at the end of this struct (optimizing memory consumption by reducing total number of allocations).

Definition at line 87 of file gnunet-gns-benchmark.c.

◆ latency

struct GNUNET_TIME_Relative Request::latency

Observed latency, set once we got a reply.

Definition at line 98 of file gnunet-gns-benchmark.c.

Referenced by compare_req(), do_shutdown(), and process_result().

◆ cat

enum RequestCategory Request::cat

Category of the request.

Definition at line 103 of file gnunet-gns-benchmark.c.

Referenced by do_shutdown(), process_queue(), process_result(), and queue().


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