GNUnet 0.21.0
Statistics service

Track statistics or provide access to statistics. More...

Collaboration diagram for Statistics service:

Macros

#define GNUNET_STATISTICS_VERSION   0x00000000
 Version of the statistics API. More...
 

Typedefs

typedef int(* GNUNET_STATISTICS_Iterator) (void *cls, const char *subsystem, const char *name, uint64_t value, int is_persistent)
 Callback function to process statistic values. More...
 
typedef void(* GNUNET_STATISTICS_Callback) (void *cls, int success)
 Continuation called by GNUNET_STATISTICS_get() functions. More...
 

Functions

struct GNUNET_STATISTICS_HandleGNUNET_STATISTICS_create (const char *subsystem, const struct GNUNET_CONFIGURATION_Handle *cfg)
 Get handle for the statistics service. More...
 
void GNUNET_STATISTICS_destroy (struct GNUNET_STATISTICS_Handle *h, int sync_first)
 Destroy a handle (free all state associated with it). More...
 
int GNUNET_STATISTICS_watch (struct GNUNET_STATISTICS_Handle *handle, const char *subsystem, const char *name, GNUNET_STATISTICS_Iterator proc, void *proc_cls)
 Watch statistics from the peer (be notified whenever they change). More...
 
int GNUNET_STATISTICS_watch_cancel (struct GNUNET_STATISTICS_Handle *handle, const char *subsystem, const char *name, GNUNET_STATISTICS_Iterator proc, void *proc_cls)
 Stop watching statistics from the peer. More...
 
struct GNUNET_STATISTICS_GetHandleGNUNET_STATISTICS_get (struct GNUNET_STATISTICS_Handle *handle, const char *subsystem, const char *name, GNUNET_STATISTICS_Callback cont, GNUNET_STATISTICS_Iterator proc, void *cls)
 Get statistic from the peer. More...
 
void GNUNET_STATISTICS_get_cancel (struct GNUNET_STATISTICS_GetHandle *gh)
 Cancel a GNUNET_STATISTICS_get request. More...
 
void GNUNET_STATISTICS_set (struct GNUNET_STATISTICS_Handle *handle, const char *name, uint64_t value, int make_persistent)
 Set statistic value for the peer. More...
 
void GNUNET_STATISTICS_update (struct GNUNET_STATISTICS_Handle *handle, const char *name, int64_t delta, int make_persistent)
 Set statistic value for the peer. More...
 

Detailed Description

Track statistics or provide access to statistics.

Create, modify and access statistics about the operation of GNUnet.

All statistical values must be of type unsigned long long.

See also
Documentation

Macro Definition Documentation

◆ GNUNET_STATISTICS_VERSION

#define GNUNET_STATISTICS_VERSION   0x00000000

Version of the statistics API.

Definition at line 59 of file gnunet_statistics_service.h.

Typedef Documentation

◆ GNUNET_STATISTICS_Iterator

typedef int(* GNUNET_STATISTICS_Iterator) (void *cls, const char *subsystem, const char *name, uint64_t value, int is_persistent)

Callback function to process statistic values.

Parameters
clsclosure
subsystemname of subsystem that created the statistic
namethe name of the datum
valuethe current value
is_persistentGNUNET_YES if the value is persistent, GNUNET_NO if not
Returns
GNUNET_OK to continue, GNUNET_SYSERR to abort iteration

Definition at line 76 of file gnunet_statistics_service.h.

◆ GNUNET_STATISTICS_Callback

typedef void(* GNUNET_STATISTICS_Callback) (void *cls, int success)

Continuation called by GNUNET_STATISTICS_get() functions.

Parameters
clsclosure
successGNUNET_OK if statistics were successfully obtained, GNUNET_SYSERR if not.

Definition at line 151 of file gnunet_statistics_service.h.

Function Documentation

◆ GNUNET_STATISTICS_create()

struct GNUNET_STATISTICS_Handle * GNUNET_STATISTICS_create ( const char *  subsystem,
const struct GNUNET_CONFIGURATION_Handle cfg 
)

Get handle for the statistics service.

Parameters
subsystemname of subsystem using the service
cfgservices configuration in use
Returns
handle to use

Definition at line 889 of file statistics_api.c.

891{
893
894 if (GNUNET_YES ==
896 "statistics",
897 "DISABLE"))
898 return NULL;
900 h->cfg = cfg;
901 h->subsystem = GNUNET_strdup (subsystem);
903 return h;
904}
static struct GNUNET_ARM_Handle * h
Connection with ARM.
Definition: gnunet-arm.c:99
static struct GNUNET_CONFIGURATION_Handle * cfg
Our configuration.
Definition: gnunet-arm.c:109
static char * subsystem
Set to subsystem that we're going to get stats for (or NULL for all).
enum GNUNET_GenericReturnValue GNUNET_CONFIGURATION_get_value_yesno(const struct GNUNET_CONFIGURATION_Handle *cfg, const char *section, const char *option)
Get a configuration value that should be in a set of "YES" or "NO".
@ GNUNET_YES
#define GNUNET_strdup(a)
Wrapper around GNUNET_xstrdup_.
#define GNUNET_new(type)
Allocate a struct or union of the given type.
#define GNUNET_TIME_UNIT_MILLISECONDS
One millisecond.
const struct GNUNET_CONFIGURATION_Handle * cfg
The configuration that we are using.
Definition: arm_api.c:112
Handle for the service.

References cfg, GNUNET_ARM_Handle::cfg, GNUNET_CONFIGURATION_get_value_yesno(), GNUNET_new, GNUNET_strdup, GNUNET_TIME_UNIT_MILLISECONDS, GNUNET_YES, h, and subsystem.

Referenced by GNUNET_DATACACHE_create(), GNUNET_DATASTORE_connect(), init_socket(), main_task(), RECLAIM_TICKETS_init(), run(), and stats_ca().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GNUNET_STATISTICS_destroy()

void GNUNET_STATISTICS_destroy ( struct GNUNET_STATISTICS_Handle h,
int  sync_first 
)

Destroy a handle (free all state associated with it).

Parameters
hstatistics handle to destroy
sync_firstset to GNUNET_YES if pending SET requests should be completed

Definition at line 916 of file statistics_api.c.

918{
919 struct GNUNET_STATISTICS_GetHandle *pos;
921
922 if (NULL == h)
923 return;
924 GNUNET_assert (GNUNET_NO == h->do_destroy); /* Don't call twice. */
925 if ((sync_first) &&
926 (NULL != h->mq) &&
927 (0 != GNUNET_MQ_get_length (h->mq)))
928 {
929 if ((NULL != h->current) &&
930 (ACTION_GET == h->current->type))
931 h->current->aborted = GNUNET_YES;
932 next = h->action_head;
933 while (NULL != (pos = next))
934 {
935 next = pos->next;
936 if ((ACTION_GET == pos->type) ||
937 (ACTION_WATCH == pos->type))
938 {
939 GNUNET_CONTAINER_DLL_remove (h->action_head,
940 h->action_tail,
941 pos);
942 free_action_item (pos);
943 }
944 }
945 h->do_destroy = GNUNET_YES;
947 GNUNET_assert (NULL == h->destroy_task);
948 h->destroy_task
950 5),
951 &do_destroy,
952 h);
954 "Deferring destruction\n");
955 return; /* do not finish destruction just yet */
956 }
957 /* do clean up all */
959 "Cleaning all up\n");
960 while (NULL != (pos = h->action_head))
961 {
962 GNUNET_CONTAINER_DLL_remove (h->action_head,
963 h->action_tail,
964 pos);
965 free_action_item (pos);
966 }
968 if (NULL != h->backoff_task)
969 {
970 GNUNET_SCHEDULER_cancel (h->backoff_task);
971 h->backoff_task = NULL;
972 }
973 if (NULL != h->destroy_task)
974 {
975 GNUNET_break (0);
976 GNUNET_SCHEDULER_cancel (h->destroy_task);
977 h->destroy_task = NULL;
978 }
979 for (unsigned int i = 0; i < h->watches_size; i++)
980 {
981 if (NULL == h->watches[i])
982 continue;
983 GNUNET_free (h->watches[i]->subsystem);
984 GNUNET_free (h->watches[i]->name);
985 GNUNET_free (h->watches[i]);
986 }
987 GNUNET_array_grow (h->watches,
988 h->watches_size,
989 0);
990 GNUNET_free (h->subsystem);
991 GNUNET_free (h);
992}
#define GNUNET_CONTAINER_DLL_remove(head, tail, element)
Remove an element from a DLL.
#define GNUNET_log(kind,...)
@ GNUNET_NO
#define GNUNET_assert(cond)
Use this for fatal errors that cannot be handled.
#define GNUNET_break(cond)
Use this for internal assertion violations that are not fatal (can be handled) but should not occur.
@ GNUNET_ERROR_TYPE_DEBUG
#define GNUNET_array_grow(arr, size, tsize)
Grow a well-typed (!) array.
#define GNUNET_free(ptr)
Wrapper around free.
unsigned int GNUNET_MQ_get_length(struct GNUNET_MQ_Handle *mq)
Obtain the current length of the message queue.
Definition: mq.c:293
void * GNUNET_SCHEDULER_cancel(struct GNUNET_SCHEDULER_Task *task)
Cancel the task with the specified identifier.
Definition: scheduler.c:975
struct GNUNET_SCHEDULER_Task * GNUNET_SCHEDULER_add_delayed(struct GNUNET_TIME_Relative delay, GNUNET_SCHEDULER_TaskCallback task, void *task_cls)
Schedule a new task to be run with a specified delay.
Definition: scheduler.c:1272
struct GNUNET_TIME_Relative GNUNET_TIME_relative_multiply(struct GNUNET_TIME_Relative rel, unsigned long long factor)
Multiply relative time by a given factor.
Definition: time.c:484
@ ACTION_GET
Get a value.
@ ACTION_WATCH
Watch a value.
static void free_action_item(struct GNUNET_STATISTICS_GetHandle *gh)
Free memory associated with the given action item.
static void schedule_action(void *cls)
Schedule the next action to be performed.
static void do_destroy(void *cls)
Task used to destroy the statistics handle.
static void do_disconnect(struct GNUNET_STATISTICS_Handle *h)
Disconnect from the statistics service.
struct GNUNET_MQ_Handle * mq
Our connection to the ARM service.
Definition: arm_api.c:107
Linked list of things we still need to do.
enum ActionType type
Is this a ACTION_GET, ACTION_SET, ACTION_UPDATE or ACTION_WATCH?
struct GNUNET_STATISTICS_GetHandle * next
This is a doubly linked list.

References ACTION_GET, ACTION_WATCH, do_destroy(), do_disconnect(), free_action_item(), GNUNET_array_grow, GNUNET_assert, GNUNET_break, GNUNET_CONTAINER_DLL_remove, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_log, GNUNET_MQ_get_length(), GNUNET_NO, GNUNET_SCHEDULER_add_delayed(), GNUNET_SCHEDULER_cancel(), GNUNET_TIME_relative_multiply(), GNUNET_YES, h, GNUNET_ARM_Handle::mq, GNUNET_STATISTICS_GetHandle::next, schedule_action(), and GNUNET_STATISTICS_GetHandle::type.

Referenced by clean_node(), cleaning_task(), cleanup(), cleanup_task(), do_destroy(), do_shutdown(), GNUNET_DATACACHE_destroy(), GNUNET_DATASTORE_disconnect(), main_task(), mq_error_handler(), process_stat_done(), RECLAIM_TICKETS_deinit(), run(), shutdown_rest(), shutdown_task(), and stats_da().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GNUNET_STATISTICS_watch()

int GNUNET_STATISTICS_watch ( struct GNUNET_STATISTICS_Handle handle,
const char *  subsystem,
const char *  name,
GNUNET_STATISTICS_Iterator  proc,
void *  proc_cls 
)

Watch statistics from the peer (be notified whenever they change).

Parameters
handleidentification of the statistics service
subsystemlimit to the specified subsystem, never NULL
namename of the statistic value, never NULL
procfunction to call on each value
proc_clsclosure for proc
Returns
GNUNET_OK on success, GNUNET_SYSERR on error

Definition at line 1136 of file statistics_api.c.

1141{
1143
1144 if (NULL == handle)
1145 return GNUNET_SYSERR;
1148 w->name = GNUNET_strdup (name);
1149 w->proc = proc;
1150 w->proc_cls = proc_cls;
1151 GNUNET_array_append (handle->watches,
1152 handle->watches_size,
1153 w);
1155 w);
1156 return GNUNET_OK;
1157}
static char * name
Name (label) of the records to list.
static struct GNUNET_VPN_Handle * handle
Handle to vpn service.
Definition: gnunet-vpn.c:35
@ GNUNET_OK
@ GNUNET_SYSERR
#define GNUNET_array_append(arr, len, element)
Append an element to an array (growing the array by one).
static void schedule_watch_request(struct GNUNET_STATISTICS_Handle *h, struct GNUNET_STATISTICS_WatchEntry *watch)
Transmit request to service that we want to watch the development of a particular value.
Entry kept for each value we are watching.
void * proc_cls
Closure for proc.
char * name
What value is this action about? (never NULL)
GNUNET_STATISTICS_Iterator proc
Function to call.
char * subsystem
What subsystem is this action about? (never NULL)

References GNUNET_array_append, GNUNET_new, GNUNET_OK, GNUNET_strdup, GNUNET_SYSERR, handle, name, GNUNET_STATISTICS_WatchEntry::name, GNUNET_STATISTICS_WatchEntry::proc, GNUNET_STATISTICS_WatchEntry::proc_cls, schedule_watch_request(), subsystem, and GNUNET_STATISTICS_WatchEntry::subsystem.

Referenced by main_task().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GNUNET_STATISTICS_watch_cancel()

int GNUNET_STATISTICS_watch_cancel ( struct GNUNET_STATISTICS_Handle handle,
const char *  subsystem,
const char *  name,
GNUNET_STATISTICS_Iterator  proc,
void *  proc_cls 
)

Stop watching statistics from the peer.

Parameters
handleidentification of the statistics service
subsystemlimit to the specified subsystem, never NULL
namename of the statistic value, never NULL
procfunction to call on each value
proc_clsclosure for proc
Returns
GNUNET_OK on success, GNUNET_SYSERR on error (no such watch)

Definition at line 1171 of file statistics_api.c.

1176{
1178
1179 if (NULL == handle)
1180 return GNUNET_SYSERR;
1181 for (unsigned int i = 0; i < handle->watches_size; i++)
1182 {
1183 w = handle->watches[i];
1184 if (NULL == w)
1185 continue;
1186 if ((w->proc == proc) &&
1187 (w->proc_cls == proc_cls) &&
1188 (0 == strcmp (w->name,
1189 name)) &&
1190 (0 == strcmp (w->subsystem,
1191 subsystem)))
1192 {
1193 GNUNET_free (w->name);
1195 GNUNET_free (w);
1196 handle->watches[i] = NULL;
1197 return GNUNET_OK;
1198 }
1199 }
1200 return GNUNET_SYSERR;
1201}

References GNUNET_free, GNUNET_OK, GNUNET_SYSERR, handle, name, GNUNET_STATISTICS_WatchEntry::name, GNUNET_STATISTICS_WatchEntry::proc, GNUNET_STATISTICS_WatchEntry::proc_cls, subsystem, and GNUNET_STATISTICS_WatchEntry::subsystem.

Referenced by clean_node().

Here is the caller graph for this function:

◆ GNUNET_STATISTICS_get()

struct GNUNET_STATISTICS_GetHandle * GNUNET_STATISTICS_get ( struct GNUNET_STATISTICS_Handle handle,
const char *  subsystem,
const char *  name,
GNUNET_STATISTICS_Callback  cont,
GNUNET_STATISTICS_Iterator  proc,
void *  cls 
)

Get statistic from the peer.

Parameters
handleidentification of the statistics service
subsystemlimit to the specified subsystem, NULL for all subsystems
namename of the statistic value, NULL for all values
contcontinuation to call when done (can be NULL) This callback CANNOT destroy the statistics handle in the same call.
procfunction to call on each value
clsclosure for proc and cont
Returns
NULL on error

Definition at line 1065 of file statistics_api.c.

1071{
1072 size_t slen1;
1073 size_t slen2;
1075
1076 if (NULL == handle)
1077 return NULL;
1078 GNUNET_assert (NULL != proc);
1079 GNUNET_assert (GNUNET_NO == handle->do_destroy);
1080 if (NULL == subsystem)
1081 subsystem = "";
1082 if (NULL == name)
1083 name = "";
1084 slen1 = strlen (subsystem) + 1;
1085 slen2 = strlen (name) + 1;
1086 GNUNET_assert (slen1 + slen2 + sizeof(struct GNUNET_MessageHeader) <
1089 ai->sh = handle;
1090 ai->subsystem = GNUNET_strdup (subsystem);
1091 ai->name = GNUNET_strdup (name);
1092 ai->cont = cont;
1093 ai->proc = proc;
1094 ai->cls = cls;
1095 ai->type = ACTION_GET;
1096 ai->msize = slen1 + slen2 + sizeof(struct GNUNET_MessageHeader);
1098 handle->action_tail,
1099 ai);
1101 return ai;
1102}
static struct GNUNET_TRANSPORT_AddressIdentifier * ai
Handle to the operation that publishes our address.
#define GNUNET_MAX_MESSAGE_SIZE
Largest supported message (to be precise, one byte more than the largest possible message,...
#define GNUNET_CONTAINER_DLL_insert_tail(head, tail, element)
Insert an element at the tail of a DLL.
Header for all communications.
GNUNET_STATISTICS_Callback cont
Continuation to call once action is complete.
GNUNET_STATISTICS_Iterator proc
Function to call (for GET actions only).
void * cls
Closure for proc and cont.

References ACTION_GET, ai, GNUNET_STATISTICS_GetHandle::cls, GNUNET_STATISTICS_GetHandle::cont, GNUNET_assert, GNUNET_CONTAINER_DLL_insert_tail, GNUNET_MAX_MESSAGE_SIZE, GNUNET_new, GNUNET_NO, GNUNET_strdup, handle, name, GNUNET_STATISTICS_GetHandle::proc, schedule_action(), and subsystem.

Referenced by GNUNET_HOSTLIST_client_start(), main_task(), run(), and stats_connect_cb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GNUNET_STATISTICS_get_cancel()

void GNUNET_STATISTICS_get_cancel ( struct GNUNET_STATISTICS_GetHandle gh)

Cancel a GNUNET_STATISTICS_get request.

Must be called before the 'cont' function is called.

Parameters
ghhandle of the request to cancel

Definition at line 1106 of file statistics_api.c.

1107{
1108 if (NULL == gh)
1109 return;
1110 gh->cont = NULL;
1111 if (gh->sh->current == gh)
1112 {
1113 gh->aborted = GNUNET_YES;
1114 return;
1115 }
1117 gh->sh->action_tail,
1118 gh);
1119 GNUNET_free (gh->name);
1120 GNUNET_free (gh->subsystem);
1121 GNUNET_free (gh);
1122}
char * name
What value is this action about? (can be NULL)
int aborted
Has the current iteration been aborted; for GET actions.
struct GNUNET_STATISTICS_Handle * sh
Main statistics handle.
char * subsystem
What subsystem is this action about? (can be NULL)
struct GNUNET_STATISTICS_GetHandle * current
Action we are currently busy with (action request has been transmitted, we're now receiving the respo...
struct GNUNET_STATISTICS_GetHandle * action_head
Head of the linked list of pending actions (first action to be performed).
struct GNUNET_STATISTICS_GetHandle * action_tail
Tail of the linked list of actions (for fast append).

References GNUNET_STATISTICS_GetHandle::aborted, GNUNET_STATISTICS_Handle::action_head, GNUNET_STATISTICS_Handle::action_tail, GNUNET_STATISTICS_GetHandle::cont, GNUNET_STATISTICS_Handle::current, GNUNET_CONTAINER_DLL_remove, GNUNET_free, GNUNET_YES, GNUNET_STATISTICS_GetHandle::name, GNUNET_STATISTICS_GetHandle::sh, and GNUNET_STATISTICS_GetHandle::subsystem.

Referenced by clean_node(), cleaning_task(), GNUNET_HOSTLIST_client_stop(), stat_timeout(), and stat_timeout_task().

Here is the caller graph for this function:

◆ GNUNET_STATISTICS_set()

void GNUNET_STATISTICS_set ( struct GNUNET_STATISTICS_Handle handle,
const char *  name,
uint64_t  value,
int  make_persistent 
)

Set statistic value for the peer.

Will always use our subsystem (the argument used when handle was created).

Parameters
handleidentification of the statistics service
namename of the statistic value
valuenew value to set
make_persistentshould the value be kept across restarts?

Definition at line 1307 of file statistics_api.c.

1311{
1312 if (NULL == handle)
1313 return;
1314 GNUNET_assert (GNUNET_NO == handle->do_destroy);
1316 name,
1317 make_persistent,
1318 value,
1319 ACTION_SET);
1320}
static char * value
Value of the record to add/remove.
@ ACTION_SET
Set a value.
static void add_setter_action(struct GNUNET_STATISTICS_Handle *h, const char *name, int make_persistent, uint64_t value, enum ActionType type)
Queue a request to change a statistic.

References ACTION_SET, add_setter_action(), GNUNET_assert, GNUNET_NO, handle, name, and value.

Referenced by adapt_sizes(), add_valid_peer(), boot_queue(), calculate_put_interval(), check_zone_namestore_next(), client_disconnect_cb(), commit_set(), connect_notify(), create_peer_ctx(), destroy_peer(), destroy_route(), dir_ready_cb(), discard_buffer(), disconnect_notify(), do_round(), finish_response(), GSC_SESSIONS_create(), GSC_SESSIONS_end(), GSF_peer_connect_handler(), GSF_peer_disconnect_handler(), GSF_plan_notify_peer_disconnect_(), GSF_plan_notify_request_done_(), handle_connection_create(), handle_p2p_estimate(), handle_put(), handle_release_reserve(), handle_reserve(), insert_hostlist(), insert_in_sampler(), insert_in_view(), iterate_zones(), kce_generate(), load_hostlist_file(), main_task(), mq_init(), new_sub(), peer_destroy(), plan(), process_result(), process_stdin(), queue_destroy(), receiver_destroy(), route_message(), run(), run_zone_iteration_round(), save_hostlist_file(), schedule_peer_transmission(), secret_destroy(), sender_destroy(), setup_estimate_message(), setup_queue(), setup_sender(), store_completed_cb(), sync_stats(), task_check(), try_transmission(), update_memory_statistics(), update_velocity(), and zone_iteration_finished().

Here is the call graph for this function:

◆ GNUNET_STATISTICS_update()

void GNUNET_STATISTICS_update ( struct GNUNET_STATISTICS_Handle handle,
const char *  name,
int64_t  delta,
int  make_persistent 
)

Set statistic value for the peer.

Will always use our subsystem (the argument used when handle was created).

Parameters
handleidentification of the statistics service
namename of the statistic value
deltachange in value (added to existing value)
make_persistentshould the value be kept across restarts?

Definition at line 1324 of file statistics_api.c.

1328{
1329 if (NULL == handle)
1330 return;
1331 if (0 == delta)
1332 return;
1333 GNUNET_assert (GNUNET_NO == handle->do_destroy);
1335 name,
1336 make_persistent,
1337 (uint64_t) delta,
1339}
static struct GNUNET_TIME_Relative delta
Definition: speedup.c:36
@ ACTION_UPDATE
Update a value.

References ACTION_UPDATE, add_setter_action(), delta, GNUNET_assert, GNUNET_NO, handle, and name.

Referenced by access_handler_callback(), add_revocation(), adv_transmit(), announce_id(), attempt_connect(), backtalker_monotime_cb(), bound_priority(), broadcast_my_type_map(), cadet_reply_proc(), callback_download(), check_peer_online(), check_peer_pull_reply(), check_tcp_data(), clean_request(), client_connect_cb(), client_disconnect_cb(), client_request_destroy(), client_response_handler(), commit_set(), connect_cb(), consider_peer_for_forwarding(), consider_request_for_forwarding(), core_read_finished_cb(), create_channel_to_destination(), datacache_get_iterator(), decode_and_send(), decrypt_box(), deliver_message(), destroy_direction(), destroy_peer(), dht_get_string_accept_handler(), discard_all_from_rung_tail(), disconnect_cb(), dns_post_request_handler(), dns_pre_request_handler(), do_decrypt(), do_encrypt(), do_round(), do_send(), download_hostlist(), env_delete_notify(), expire_oldest_entry(), expired_processor(), fail_intersection_operation(), finish_handling_raw_message(), finish_request(), forward_reply(), free_channel_state(), free_destination_entry(), free_pending_request(), free_queue(), free_queue_entry(), GCC_latency_observed(), GCCH_channel_incoming_new(), GCCH_channel_local_new(), GCCH_handle_channel_open_ack(), GCCH_handle_channel_plaintext_data(), GCCH_handle_channel_plaintext_data_ack(), GCD_search(), GCT_handle_encrypted(), GCT_handle_kx(), GCT_handle_kx_auth(), GCT_send(), GDS_CLIENTS_handle_reply(), GDS_DATACACHE_get_closest(), GDS_DATACACHE_handle_get(), GDS_DATACACHE_handle_put(), GDS_NEIGHBOURS_handle_get(), GDS_NEIGHBOURS_handle_put(), GDS_NEIGHBOURS_handle_reply(), GDS_ROUTING_add(), GDS_u_connect(), GDS_u_disconnect(), get_forward_count(), get_randomized_delay(), GNUNET_DATACACHE_get(), GNUNET_DATACACHE_get_closest(), GNUNET_DATACACHE_put(), GNUNET_DATASTORE_get_for_replication(), GNUNET_DATASTORE_get_key(), GNUNET_DATASTORE_get_zero_anonymity(), GNUNET_DATASTORE_put(), GNUNET_DATASTORE_release_reserve(), GNUNET_DATASTORE_remove(), GNUNET_DATASTORE_reserve(), GNUNET_FS_handle_on_demand_block(), got_peer(), GSC_CLIENTS_deliver_message(), GSC_SESSIONS_confirm_typemap(), GSC_TYPEMAP_get_from_message(), GSF_block_peer_migration_(), GSF_local_lookup_(), GSF_pending_request_create_(), GSF_plan_add_(), handle_backchannel_encapsulation(), handle_block_cache(), handle_client_accept(), handle_client_evaluate(), handle_client_recv_ok(), handle_client_redirect_to_ip(), handle_client_response(), handle_client_send(), handle_client_send_request(), handle_client_start_search(), handle_core_connect(), handle_core_disconnect(), handle_data(), handle_datastore_reply(), handle_dht_local_get(), handle_dht_local_get_stop(), handle_dht_local_put(), handle_dht_p2p_get(), handle_dht_p2p_put(), handle_dht_p2p_result(), handle_dht_reply(), handle_dns_response(), handle_dv_box(), handle_dv_learn(), handle_encrypted(), handle_ephemeral_key(), handle_find_my_hello(), handle_flow_control(), handle_get(), handle_get_key(), handle_get_replication(), handle_get_zero_anonymity(), handle_hello(), handle_icmp_back(), handle_icmp_remote(), handle_icmp_service(), handle_iteration_next(), handle_local_data(), handle_lookup(), handle_lookup_block(), handle_lookup_block_it(), handle_monitor_error(), handle_monitor_event(), handle_p2p_estimate(), handle_p2p_get(), handle_p2p_migration_stop(), handle_p2p_put(), handle_p2p_reply(), handle_peer_check(), handle_peer_pull_reply(), handle_peer_pull_request(), handle_peer_push(), handle_ping(), handle_plaintext_keepalive(), handle_pong(), handle_queue_create_fail(), handle_queue_create_ok(), handle_reliability_ack(), handle_remove(), handle_reply(), handle_request(), handle_status(), handle_tcp_back(), handle_tcp_data(), handle_tcp_remote(), handle_tcp_service(), handle_transport_notify_connect(), handle_transport_notify_disconnect(), handle_udp_back(), handle_udp_remote(), handle_udp_service(), handle_union_p2p_demand(), handle_union_p2p_elements(), handle_union_p2p_full_element(), handle_union_p2p_strata_estimator(), handle_validation_response(), handler_connect(), handler_disconnect(), host_processor(), icmp_from_helper(), initiate_put_from_pipe_trigger(), insert_in_sampler(), iterate_zones(), learn_dv_path(), lookup_authz_cb(), make_queue_entry(), merge_pr(), message_token(), monitor_iterate_cb(), mq_notify_sent_cb(), new_channel(), new_service_channel(), next_phase(), no_more_local_results(), ns_lookup_result_cb(), pass_plaintext_to_core(), peerstore_store_validation_cb(), process(), process_dns_result(), process_helper_messages(), process_local_reply(), process_parallel_lookup_result(), process_record(), process_reply(), process_result(), progress_cb(), publish_zone_dht_start(), put_continuation(), put_migration_continuation(), quota_processor(), reannounce_regex(), receive_complete_cb(), refresh_block(), regex_edge_iterator(), regex_iterator(), regex_next_edge(), regex_result_iterator(), remove_continuation(), request_done(), route_control_message_without_fc(), route_message(), route_packet(), route_via_neighbour(), schedule_current_round(), schedule_next_hello(), schedule_peer_transmission(), schedule_transmit_on_queue(), secret_destroy(), select_peer(), select_write_cb(), send_bloomfilter(), send_client_done(), send_client_done_and_destroy(), send_client_removed_element(), send_find_peer_message(), send_ibf(), send_icmp_packet_via_tun(), send_keep_alive(), send_keepalive(), send_kx(), send_kx_auth(), send_lookup_response(), send_lookup_response_with_filter(), send_packet_to_cadet_channel(), send_ping(), send_pull_reply(), send_pull_request(), send_push(), send_store_response(), send_tcp_packet_via_tun(), send_to_channel(), send_udp_packet_via_tun(), setup_initial_shared_secret_ephemeral(), setup_shared_secret_ephemeral(), sock_read(), start_local_query(), store_record_set(), suggest_to_connect(), test_exist_cb(), test_put_load_too_high(), timeout_request(), tokenized_cb(), transmit_item(), transmit_request(), transmit_task_cb(), transmit_typemap_task(), try_decrypt(), try_handle_plaintext(), try_reconnect(), union_accept(), union_evaluate(), update_ax_by_kx(), update_hostlist(), update_network_size_estimate(), and vpn_allocation_callback().

Here is the call graph for this function: