GNUnet  0.11.x
Data Fields
ClientHandle Struct Reference

Struct containing information about a client, handle to connect to it, and any pending messages that need to be sent to it. More...

Collaboration diagram for ClientHandle:
[legend]

Data Fields

struct ClientQueryRecordcqr_head
 Linked list of active queries of this client. More...
 
struct ClientQueryRecordcqr_tail
 Linked list of active queries of this client. More...
 
struct GNUNET_SERVICE_Clientclient
 The handle to this client. More...
 
struct GNUNET_MQ_Handlemq
 The message queue to this client. More...
 
struct ClientHandlenext
 Kept in a DLL. More...
 
struct ClientHandleprev
 Kept in a DLL. More...
 
struct ClientAddresscaddrs
 Array of addresses used by the service. More...
 
char * hole_external
 External DNS name and port given by user due to manual hole punching. More...
 
char * section_name
 Name of the configuration section this client cares about. More...
 
struct GNUNET_SCHEDULER_Taskext_dns_task
 Task for periodically re-running the ext_dns DNS lookup. More...
 
struct GNUNET_RESOLVER_RequestHandleext_dns
 Handle for (DYN)DNS lookup of our external IP as given in hole_external. More...
 
struct GN_ExternalIPMonitorexternal_monitor
 Handle for monitoring external IP changes. More...
 
struct LocalAddressListext_addr_head
 DLL of external IP addresses as given in hole_external. More...
 
struct LocalAddressListext_addr_tail
 DLL of external IP addresses as given in hole_external. More...
 
uint16_t ext_dns_port
 Port number we found in hole_external. More...
 
enum GNUNET_NAT_RegisterFlags flags
 What does this client care about? More...
 
int natted_address
 Is any of the caddrs in a reserved subnet for NAT? More...
 
uint16_t num_caddrs
 Number of addresses that this service is bound to. More...
 
uint8_t proto
 Client's IPPROTO, e.g. More...
 

Detailed Description

Struct containing information about a client, handle to connect to it, and any pending messages that need to be sent to it.

Internal data structure we track for each of our clients.

Definition at line 190 of file gnunet-service-dht_clients.c.

Field Documentation

◆ cqr_head

struct ClientQueryRecord* ClientHandle::cqr_head

Linked list of active queries of this client.

Definition at line 195 of file gnunet-service-dht_clients.c.

Referenced by client_disconnect_cb(), handle_dht_local_get(), and remove_client_record().

◆ cqr_tail

struct ClientQueryRecord* ClientHandle::cqr_tail

Linked list of active queries of this client.

Definition at line 200 of file gnunet-service-dht_clients.c.

Referenced by handle_dht_local_get(), and remove_client_record().

◆ client

struct GNUNET_SERVICE_Client * ClientHandle::client

◆ mq

struct GNUNET_MQ_Handle * ClientHandle::mq

The message queue to this client.

Message queue for communicating with the client.

Definition at line 210 of file gnunet-service-dht_clients.c.

Referenced by client_connect_cb(), conclude_autoconfig_request(), forward_reply(), GDS_CLIENTS_process_get(), GDS_CLIENTS_process_get_resp(), GDS_CLIENTS_process_put(), and notify_client().

◆ next

struct ClientHandle * ClientHandle::next

Kept in a DLL.

Definition at line 146 of file gnunet-service-nat.c.

◆ prev

struct ClientHandle * ClientHandle::prev

Kept in a DLL.

Definition at line 151 of file gnunet-service-nat.c.

◆ caddrs

struct ClientAddress* ClientHandle::caddrs

Array of addresses used by the service.

Definition at line 166 of file gnunet-service-nat.c.

Referenced by check_notify_client(), client_disconnect_cb(), handle_register(), and notify_client_external_ipv4_change().

◆ hole_external

char* ClientHandle::hole_external

External DNS name and port given by user due to manual hole punching.

Special DNS name 'AUTO' is used to indicate desire for automatic determination of the external IP (instead of DNS or manual configuration, i.e. to be used if the IP keeps changing and we have no DynDNS, but we do have a hole punched).

Definition at line 176 of file gnunet-service-nat.c.

Referenced by client_disconnect_cb(), dyndns_lookup(), handle_register(), lookup_hole_external(), notify_client_external_ipv4_change(), and process_external_ip().

◆ section_name

char* ClientHandle::section_name

Name of the configuration section this client cares about.

Definition at line 181 of file gnunet-service-nat.c.

Referenced by client_disconnect_cb(), dyndns_lookup(), handle_register(), lookup_hole_external(), and notify_client_external_ipv4_change().

◆ ext_dns_task

struct GNUNET_SCHEDULER_Task* ClientHandle::ext_dns_task

Task for periodically re-running the ext_dns DNS lookup.

Definition at line 186 of file gnunet-service-nat.c.

Referenced by client_disconnect_cb(), dyndns_lookup(), lookup_hole_external(), and process_external_ip().

◆ ext_dns

struct GNUNET_RESOLVER_RequestHandle* ClientHandle::ext_dns

Handle for (DYN)DNS lookup of our external IP as given in hole_external.

Definition at line 192 of file gnunet-service-nat.c.

Referenced by client_disconnect_cb(), dyndns_lookup(), and process_external_ip().

◆ external_monitor

struct GN_ExternalIPMonitor* ClientHandle::external_monitor

Handle for monitoring external IP changes.

Definition at line 197 of file gnunet-service-nat.c.

Referenced by client_disconnect_cb(), and handle_register().

◆ ext_addr_head

struct LocalAddressList* ClientHandle::ext_addr_head

DLL of external IP addresses as given in hole_external.

Definition at line 202 of file gnunet-service-nat.c.

Referenced by client_disconnect_cb(), dyndns_lookup(), lookup_hole_external(), and process_external_ip().

◆ ext_addr_tail

struct LocalAddressList* ClientHandle::ext_addr_tail

DLL of external IP addresses as given in hole_external.

Definition at line 207 of file gnunet-service-nat.c.

Referenced by client_disconnect_cb(), lookup_hole_external(), and process_external_ip().

◆ ext_dns_port

uint16_t ClientHandle::ext_dns_port

Port number we found in hole_external.

Definition at line 212 of file gnunet-service-nat.c.

Referenced by dyndns_lookup(), lookup_hole_external(), notify_client_external_ipv4_change(), and process_external_ip().

◆ flags

enum GNUNET_NAT_RegisterFlags ClientHandle::flags

What does this client care about?

Definition at line 217 of file gnunet-service-nat.c.

Referenced by check_notify_client(), and handle_register().

◆ natted_address

int ClientHandle::natted_address

Is any of the caddrs in a reserved subnet for NAT?

Definition at line 222 of file gnunet-service-nat.c.

Referenced by handle_register(), and notify_client_external_ipv4_change().

◆ num_caddrs

uint16_t ClientHandle::num_caddrs

Number of addresses that this service is bound to.

Length of the caddrs array.

Definition at line 228 of file gnunet-service-nat.c.

Referenced by check_notify_client(), client_disconnect_cb(), handle_register(), and notify_client_external_ipv4_change().

◆ proto

uint8_t ClientHandle::proto

Client's IPPROTO, e.g.

IPPROTO_UDP or IPPROTO_TCP.

Definition at line 233 of file gnunet-service-nat.c.

Referenced by handle_register().


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