GNUnet  0.11.x
Data Fields
Request Struct Reference

Request we should make. More...

Collaboration diagram for Request:
[legend]

Data Fields

struct Requestnext
 Requests are kept in a DLL. More...
 
struct Requestprev
 Requests are kept in a DLL. More...
 
struct GNUNET_DNSSTUB_RequestSocketrs
 Socket used to make the request, NULL if not active. More...
 
void * raw
 Raw DNS query. More...
 
size_t raw_len
 Number of bytes in raw. More...
 
char * hostname
 Hostname we are resolving. More...
 
time_t time
 When did we last issue this request? More...
 
int issue_num
 How often did we issue this query? More...
 
uint16_t id
 random 16-bit DNS query identifier. 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...
 
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_Absolute op_start_time
 While we are fetching the record, the value is set to the starting time of the GNS operation. More...
 
struct GNUNET_TIME_Relative latency
 Observed latency, set once we got a reply. More...
 
enum RequestCategory cat
 Category of the request. More...
 
struct GNUNET_CONTAINER_HeapNodehn
 Requests are kept in a heap while waiting to be resolved. 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_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...
 
unsigned int issue_num
 How often did we issue this query? (And failed, reset to zero once we were successful.) 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 34 of file gnunet-zonewalk.c.

Field Documentation

◆ next

struct Request * Request::next

Requests are kept in a DLL.

Active requests are kept in a DLL.

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

Referenced by do_shutdown(), and process_queue().

◆ prev

struct Request * Request::prev

Requests are kept in a DLL.

Active requests are kept in a DLL.

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

◆ rs

struct GNUNET_DNSSTUB_RequestSocket * Request::rs

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

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

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

◆ raw

void* Request::raw

Raw DNS query.

Definition at line 54 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 59 of file gnunet-zonewalk.c.

Referenced by queue(), and submit_req().

◆ hostname [1/2]

char * Request::hostname

Hostname we are resolving.

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

Definition at line 64 of file gnunet-zonewalk.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().

◆ time

time_t Request::time

When did we last issue this request?

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

Referenced by submit_req().

◆ issue_num [1/2]

int Request::issue_num

How often did we issue this query?

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

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

◆ id

uint16_t Request::id

random 16-bit DNS query identifier.

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

Referenced by build_dns_query(), process_result(), queue(), and gnunet_testing.Peer::start().

◆ lsock

struct GNUNET_NETWORK_Handle* Request::lsock

Socket to use for sending the reply.

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

◆ addr

const void* Request::addr

Destination address to use.

Definition at line 50 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 56 of file gnunet-dns2gns.c.

◆ lookup

struct GNUNET_GNS_LookupWithTldRequest* Request::lookup

Our GNS request handle.

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

◆ dns_lookup

struct GNUNET_DNSSTUB_RequestSocket* Request::dns_lookup

Our DNS request handle.

Definition at line 66 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 72 of file gnunet-dns2gns.c.

◆ udp_msg

char* Request::udp_msg

Original UDP request message.

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

◆ addr_len

size_t Request::addr_len

Number of bytes in addr.

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

◆ udp_msg_size

size_t Request::udp_msg_size

Number of bytes in udp_msg.

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

◆ original_request_id

uint16_t Request::original_request_id

ID of the original request.

Definition at line 92 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.

◆ 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 GNS operation.

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

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

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

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

◆ latency

struct GNUNET_TIME_Relative Request::latency

Observed latency, set once we got a reply.

Definition at line 87 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 87 of file gnunet-gns-benchmark.c.

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

◆ hn

struct GNUNET_CONTAINER_HeapNode* Request::hn

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

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

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

◆ rec_head

struct Record* Request::rec_head

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

Definition at line 151 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 157 of file gnunet-zoneimport.c.

Referenced by add_record(), and free_records().

◆ qe

struct GNUNET_NAMESTORE_QueueEntry* Request::qe

Namestore operation pending for this record.

Definition at line 174 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 179 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 179 of file gnunet-zoneimport.c.

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

◆ issue_num [2/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 200 of file gnunet-zoneimport.c.


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