GNUnet 0.28.1-dev.4-8-g14b9efcb0
 
Loading...
Searching...
No Matches
CommunicatorMessageContext Struct Reference

Context from handle_incoming_msg(). More...

Collaboration diagram for CommunicatorMessageContext:
[legend]

Data Fields

struct CommunicatorMessageContextnext
 Kept in a DLL of struct VirtualLink if waiting for CORE flow control to unchoke.
 
struct CommunicatorMessageContextprev
 Kept in a DLL of struct VirtualLink if waiting for CORE flow control to unchoke.
 
struct TransportClienttc
 Which communicator provided us with the message.
 
struct GNUNET_TRANSPORT_IncomingMessage im
 Additional information for flow control and about the sender.
 
const struct GNUNET_MessageHeadermh
 The message to demultiplex.
 
uint16_t total_hops
 Number of hops the message has travelled (if DV-routed).
 
unsigned int ack_sent
 Did we already send the flow control ACK to the communicator? The ACK is per-message and expresses CORE backpressure, so it is withheld while the message waits on core_recv_window.
 
unsigned int client_resumed
 Did we already call GNUNET_SERVICE_client_continue()? That call is per client, not per message, so it must never be withheld for a condition that concerns a single virtual link – see finish_handling_raw_message().
 

Detailed Description

Context from handle_incoming_msg().

Closure for many message handlers below.

Definition at line 1344 of file gnunet-service-transport.c.

Field Documentation

◆ next

struct CommunicatorMessageContext* CommunicatorMessageContext::next

Kept in a DLL of struct VirtualLink if waiting for CORE flow control to unchoke.

Definition at line 1350 of file gnunet-service-transport.c.

◆ prev

struct CommunicatorMessageContext* CommunicatorMessageContext::prev

Kept in a DLL of struct VirtualLink if waiting for CORE flow control to unchoke.

Definition at line 1356 of file gnunet-service-transport.c.

◆ tc

struct TransportClient* CommunicatorMessageContext::tc

Which communicator provided us with the message.

Definition at line 1361 of file gnunet-service-transport.c.

Referenced by handle_dv_learn(), handle_incoming_msg(), resume_cmc_client(), and send_cmc_ack().

◆ im

◆ mh

const struct GNUNET_MessageHeader* CommunicatorMessageContext::mh

◆ total_hops

uint16_t CommunicatorMessageContext::total_hops

Number of hops the message has travelled (if DV-routed).

FIXME: make use of this in ACK handling!

Definition at line 1377 of file gnunet-service-transport.c.

Referenced by handle_dv_box(), and handle_validation_challenge().

◆ ack_sent

unsigned int CommunicatorMessageContext::ack_sent

Did we already send the flow control ACK to the communicator? The ACK is per-message and expresses CORE backpressure, so it is withheld while the message waits on core_recv_window.

Definition at line 1384 of file gnunet-service-transport.c.

Referenced by send_cmc_ack().

◆ client_resumed

unsigned int CommunicatorMessageContext::client_resumed

Did we already call GNUNET_SERVICE_client_continue()? That call is per client, not per message, so it must never be withheld for a condition that concerns a single virtual link – see finish_handling_raw_message().

Definition at line 1392 of file gnunet-service-transport.c.

Referenced by resume_cmc_client().


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